| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘-traditional’ オプションを指定すると、特定のキーワードをいくつか
無効にする。‘-ansi’ を指定すると、その他のキーワードをいくつか
無効にする。これは、GNU C の拡張や ANSI C の機能を、ANSI C のプログラムと
旧来の C のプログラムを含む全てのプログラムで使えなければならない、
汎用のヘッダファイルで使いたい場合に問題になる。その場合、キーワード
asm、typeof、inline は ‘-ansi’ でコンパイルした
プログラムでは動作しないので使えない。一方、キーワード const、
volatile、signed、typeof、inline は、
‘-traditional’ を指定してコンパイルしたプログラムで動作しない。
この問題を解決するには、問題となる各キーワードの頭に ‘__’ を
付ければ良い。例えば、asm の代わりに __asm__ を、
const の代わりに __const__ を、inline の
代わりに __inline__ を使う。
他の C コンパイラはこれらの代替キーワードを受け付けないので、別のコンパイラ でコンパイルした場合には、代替キーワードをマクロとして定義し、 通常のキーワードに置き代わるようにすることができる。それには以下のように する。
#ifndef __GNUC__ #define __asm__ asm #endif |
‘-pedantic’ は、GNU C の拡張の多くに警告を出す。
そういう警告のうち、一つの式の中に収まっているものについては、
その式の前に __extension__ を書くことで、出さないようにする
ことができる。__extension__ には、これ以外の効果はない。
This document was generated
using texi2html 1.78.