コンパイル警告(warning)を一部分で抑止する
警告が発生するソースコード
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> #include <stdlib.h> int main(void) { int x = 1, y; y = (x++)*(x++); printf("x = %d, y = %d\n", x, y); return (EXIT_SUCCESS); } |
警告の例
1 2 3 4 5 |
$ gcc -Wall main.c main.c: In function ‘main’: main.c:6:9: warning: operation on ‘x’ may be undefined [-Wsequence-point] y = (x++)+(x++); ^ |
pragma命令で警告を抑止した例
1 2 3 4 5 6 7 8 9 10 11 |
#include <stdio.h> #include <stdlib.h> int main(void) { int x = 1, y; #pragma GCC diagnostic ignored "-Wsequence-point" y = (x++)*(x++); #pragma GCC diagnostic warning "-Wsequence-point" printf("x = %d, y = %d\n", x, y); return (EXIT_SUCCESS); } |