2016-07-29 18 views
-1

は、私は単にこのどのように標準ANSI Cでこれを行うための任意の方法または標準的な慣習があり、Pythonで

def func(): 
    if condition: 
     import something 
    else: 
     import somethingelse 

を行うことができますヘッダーファイルをインクルード随意するには?それが助けになると、私がコンピュータ上にいるときに、印刷機能が社内コンパイラで利用できなくなる可能性があるため、組み込みシステムのときに消えないようにするために、print文が必要です。

+0

ANSI Cは無関係です。 Cは2011年の唯一の有効なバージョンでISO9899として標準化されています。条件付きでファイルを含めることは、あなたが望むようにする正しい方法ではない可能性があります。これらのヘッダがなければ、あなたのコードは依然として関数を明白に呼び出すでしょうが、必須プロトタイプは必要ありません。 ( "社内コンパイラ"とは何でも) – Olaf

+0

ソリューションを探すときは、sys \ stat.hのようなLinux固有のライブラリを含むソリューションがよく見かける。私はそれを明確にしていないことは申し訳なく思っています。私はまだ専門用語を学んでいる。さらに、ここでの答えから、あなたがもたらす問題を緩和するための空の関数を持つプロトタイプを単純に含めることができるようです。社内とは、「組織内で行われた」という意味です。それは我々がそれを構築したことを意味し、特定のものを含んでいない可能性があります。 –

+0

**外部**ライブラリはC標準に関連していません。 (彼らはABIに従えばC言語で書かれる必要もない)。プロトタイプは何も定義しません。従って、それらは「空」ではない(例えば、結果を返すと想定される関数の意味)。とにかく、宣言、つまりヘッダーを省略するだけではありません。特定の実装について考える前に、きれいな概念を作りたいと思うかもしれません。 – Olaf

答えて

2
#define SOME_CONSTANT 

#ifdef SOME_CONSTANT 

#include<header.h> 

#else 

#include<otherheader.h> 

#endif 
1

これは、通常、条件付きコンパイルで実行されます。適切な値で定義されているかどうかEMBEDDED

#if EMBEDDED == 1 
#define print_xxx(...) (void)0 
#endif 

は、ビルド時に決定されます。その時点では、プラットフォームに応じて、コンパイルフラグは、どのような種類のプラットフォームがターゲットにされているかを反映することができます。

関連する問題