Last Update 2020/11/23
-std=c11
言語標準をc11としてコンパイル
テスト概要
-std=オプションに c99 を指定してコンパイル実行
WARNING
警告のみでコンパイル終了・実行ファイル生成
-std=オプションに c11 を指定してコンパイル実行
PASS
コンパイル終了・実行ファイル生成
実行環境
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.h
/* -std=c11 オプション動作確認用ヘッダファイル */
#ifndef SAMPLE_H
#define SAMPLE_H
int sampFunc(int n);
#endif /* SAMPLE_H */
main.c
/* -std=c11 オプション動作確認用ソースファイル main.c */
#include <stdio.h>
#include "sample.h"
int main(void)
{
int n = sampFunc(3);
printf("n = %d\n", n);
return 0;
}
sample.c
/* -std=c11 オプション動作確認用ソースファイル sample.c */
#include <stdio.h>
#include "sample.h"
int sampFunc(int n)
{
struct
{
struct {int i1, i2;};
} sx;
sx.i1 = n * 2;
sx.i2 = n * 3;
printf("sx.i1 = %d : sx.i2 = %d\n", sx.i1, sx.i2);
return n;
}
-std=オプションに c99 を指定してコンパイル実行
$ gcc -v -std=c99 -Wpedantic sample.c main.c
Using built-in specs.
︙
/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample.c -quiet ... -std=c99 ...
︙
GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu)
compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 84637943c330ccfe91c8483610cbfda9
sample.c: In function ‘sampFunc’:
sample.c:10:23: warning: ISO C99 doesn’t support unnamed structs/unions [-Wpedantic]
struct {int i1, i2;}; 匿名構造体に関する警告
^
sample.c:8:2: warning: struct has no named members [-Wpedantic]
struct
^~~~~~
COLLECT_GCC_OPTIONS='-v' '-std=c99' '-Wpedantic' '-mtune=generic' '-march=x86-64'
as -v --64 -o /tmp/ccegKhKt.o /tmp/ccpKB7kT.s
︙
/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v main.c ... -std=c99 -version -o /tmp/ccpKB7kT.s
︙
GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu)
compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none
︙
as -v --64 -o /tmp/ccbklze4.o /tmp/ccpKB7kT.s
︙
/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ...
COLLECT_GCC_OPTIONS='-v' '-std=c99' '-Wpedantic' '-mtune=generic' '-march=x86-64'
$ ./a.out
sx.i1 = 6 : sx.i2 = 9
n = 3
$ 警告のみでコンパイル終了・実行ファイル生成
-std=オプションに c11 を指定してコンパイル実行
$ gcc -v -std=c11 -Wpedantic sample.c main.c
Using built-in specs.
︙
/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample.c ... -std=c11 ...
︙
GNU C11 (GCC) version 8.2.0 (x86_64-pc-linux-gnu)
compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none
︙
as -v --64 -o /tmp/ccm3TKcn.o /tmp/ccUEPA6I.s
︙
/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v main.c ... -std=c11 ...
︙
GNU C11 (GCC) version 8.2.0 (x86_64-pc-linux-gnu)
compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none
︙
as -v --64 -o /tmp/ccQ0c2n1.o /tmp/ccUEPA6I.s
︙
/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ...
COLLECT_GCC_OPTIONS='-v' '-std=c11' '-Wpedantic' '-mtune=generic' '-march=x86-64'
$ ./a.out
sx.i1 = 6 : sx.i2 = 9
n = 3
$ コンパイル終了・実行ファイル生成