アカウント名:
パスワード:
C89からC11だと間に C99があります.
C99で標準化された機能でカーネルコードに影響がありそうなものは- 可変引数マクロ. __VA_ARGS__ 使うやつ- designated の初期化. struct A { int hoge; int fuga}; A a = { .hoge = 1, .fuga= 2}; って書けるやつ- 可変長配列- サイズゼロ配列- for (int x=0; x<10; ++x) って感じでローカル変数が宣言できるやつなどがあります.
最後の for文内でローカル変数が宣言できる機能が,今回のC89からC11に移行するきっかけになった新機能です.LKMLの議論だと,全部のメールを読んだわけではありませんが流し読みした感じではC89か
まともに追いかけていない門外漢だけど、linuxってgcc固有機能もあちこちで使っている印象だったので今でも(建前上は)C89縛りだったんかい!という感じ
で、今回ついに-std=gnu89では使えないコア言語の機能(for文内でローカル変数を宣言できる機能)が問題になったと
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ見習い
C89からC11への変更点 (スコア:5, 参考になる)
C89からC11だと間に C99があります.
C99で標準化された機能でカーネルコードに影響がありそうなものは
- 可変引数マクロ. __VA_ARGS__ 使うやつ
- designated の初期化. struct A { int hoge; int fuga}; A a = { .hoge = 1, .fuga= 2}; って書けるやつ
- 可変長配列
- サイズゼロ配列
- for (int x=0; x<10; ++x) って感じでローカル変数が宣言できるやつ
などがあります.
最後の for文内でローカル変数が宣言できる機能が,今回のC89からC11に移行するきっかけになった新機能です.
LKMLの議論だと,全部のメールを読んだわけではありませんが流し読みした感じでは
C89か
Re: (スコア:0)
まともに追いかけていない門外漢だけど、linuxってgcc固有機能もあちこちで使っている印象だったので
今でも(建前上は)C89縛りだったんかい!という感じ
Re:C89からC11への変更点 (スコア:1)
C99の新機能はライブラリの機能ばっかりでカーネルのコード書くときは関係ないよねというのがC89にとどまってた理由
Re: (スコア:0)
で、今回ついに-std=gnu89では使えないコア言語の機能(for文内でローカル変数を宣言できる機能)が問題になったと