[ < ] | [ > ] | [ << ] | [ 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.