9.18 block-scope 関数の宣言

コンパイラでは、block-scope 関数の宣言に対する以下の拡張機能がサポートされています。

  • block-scope 関数を宣言すると、ファイルの有効範囲内の関数名も宣言されます。
  • block-scope 関数宣言ではスタティック記憶域クラスを持つことができるので、行った宣言にはデフォルトにより静的リンケージが含まれます。

void f1(void)
{
    static void g(void); /* static function declared in local scope */
                         /* use of static keyword is illegal in strict ISO C */
}
void f2(void)
{
    g();                 /* uses previous local declaration */
}
static void g(int i)
{ } /* error - conflicts with previous declaration of g */
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.