Accelerated C++ 第0章

標準ヘッダ
C++はヘッダファイルじゃないみたい。実装上は「ファイル」でないこともあるのかな?


main関数の戻り値

main関数は特別で、returnを省略することもできる。その場合、mainは0を返すものとして扱われる。

不定かと思ってた。

#include <iostream.h>
#include <process.h>
int main()
{
    int ret;
    
    ret = system("test.exe");
    std::cout << "ret = " << ret << std::endl;
    return 0;
}

てなプログラムで、test.cpp の内容を色々変えて確認。省略時は確かに 0 となる。
system()は厳密にはshell経由なんだけど、確認上は問題なし。


課題
0-1 実際にやってみた。
0-2 3+4を計算し7を得る式。式に ; がついているので式文。値7は捨てられる。
0-3 省略。これは " とか \ の文字列リテラルの出力方法(\でエスケープ)の練習だろうね。
0-4 省略。これも0-3と同じか。
0-5 正しくない。関数の本体はブロック({}で囲まれた複文)であること。
0-6 正しい。複文が入れ子になっても問題はない。
0-7 正しくない。ネストしたコメントだが実装依存かな? でもこんな場合、普通は#if 0/#endifでやるので無視。
0-8 正しい。//は行末までコメントとなるので、中に/*があっても無視される(と思う)
0-9 int main() { } か?
0-10 省略。改行が許される場所の確認のための問題。

<2008.9.21追記。この章は第0なのに気づいた>