Last Update 2021/11/04
-Wold-style-declaration
宣言中にC標準の廃止された使用法がある場合に警告
テスト概要
オプション無し、-Wold-style-declaration、-Wextraの各オプションを使用した際の警告出力例
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
使用ファイル
sample.c
#include <stdio.h>
/* 記憶域クラス指定子を戻り値型の後に記述した関数宣言 */
int static sampFunc(int n);
/* 記憶域クラス指定子を戻り値型の後に記述した関数定義 */
int static sampFunc(int n)
{
return n * 2;
}
int main(void)
{
printf("%d\n", sampFunc(5));
return 0;
}
動作テスト
オプション無しでコンパイルを実行
$ gcc sample.c 警告無し
$
-Wold-style-declarationオプションを指定してコンパイルを実行
$ gcc -Wold-style-declaration sample.c
sample.c:4:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
int static sampFunc(int n);
^~~
sample.c:7:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
int static sampFunc(int n)
^~~
$ staticが宣言の先頭に無い事への警告
-Wextraオプションを指定してコンパイルを実行
$ gcc -Wextra sample.c
sample.c:4:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
int static sampFunc(int n);
^~~
sample.c:7:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
int static sampFunc(int n)
^~~
$ -Wold-style-declarationオプションは-Wextraでも有効となる