STANDALONE NETWORKS

ゲームプログラマーが独立起業してみるブログ

C プログラミングの非常識

f:id:oppyen:20160403104820j:plain

C++ 使用歴 20 年以上、えのきです。

こんだけ長く使っててもちょいちょい知らない事が出てくるイヤーなプログラミング言語C++


以下のコードで、

28 行目に以下のような警告が出ます。Visual C++ 2015。

warning C4930: 'Bar ng(Foo)': プロトタイプされている関数が呼び出されませんでした (変数の定義が意図されていますか?)

コンパイラのバグかと思ったけど、Android 向けの Clang 3.6 でも同様に警告されたので、どうやら言語仕様っぽく。

warning : parentheses were disambiguated as a function declaration [-Wvexing-parse]

警告行が丸々無かった事になるので、後続コードが超謎っぽいコンパイルエラーになりました。29 行目みたいに書くと通っちゃうのが混乱に拍車を掛けて、プチはまり。このやろー。

ていうかなんでこれが関数宣言と見なされるの?と思って試しに 32 行目のように書いてみたら通りやがんのな。こんな変な位置のカッコ、エラーにならないんだ?

なんか仕様上必要なんですかねぇ。20 年以上書いてて一回も使った事ない気がするけどな。


アイキャッチ画像は、学生時代に初めて買った C 言語の解説書。

最初にこんなマニアックな本買ってんじゃねーよ(笑)って思わんでもないけど、教科書みたいなのよりもずっと実践的で解りやすかったと記憶。さすがにもう読み返したりはしてないけど、まだ本棚に並んでます。

プログラミングの話はあんまりブログに書く気無かったけど、たまには書いていこうかなぁ。


以上、長く使ってるだけで別に C++ なんか好きじゃないんだからね!と力説したい、えのきでした。