パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

リーナス・トーバルズ氏、Linuxカーネルの開発を「C89」から「C11」に移行方針へ」記事へのコメント

  • 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か

    • by Anonymous Coward on 2022年03月07日 13時46分 (#4211022)

      まともに追いかけていない門外漢だけど、linuxってgcc固有機能もあちこちで使っている印象だったので
      今でも(建前上は)C89縛りだったんかい!という感じ

      親コメント
      • by Anonymous Coward on 2022年03月07日 14時05分 (#4211038)
        建前上はGNU拡張入りのC89では(gcc -std=gnu89)
        C99の新機能はライブラリの機能ばっかりでカーネルのコード書くときは関係ないよねというのがC89にとどまってた理由
        親コメント
        • by Anonymous Coward

          で、今回ついに-std=gnu89では使えないコア言語の機能(for文内でローカル変数を宣言できる機能)が問題になったと

      • by Anonymous Coward

        なんか以前移行を試みたときはgcc 4.x系のバグを踏んで断念したらしい

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...