-2

例えば:

void main(){
foo1();

} 

fooTarget();
foo1(foo2(););
foo2(foo3(););
foo3(foo4(););
foo4(foo5(););
foo5(
foo6();
fooTarget(); //Identifier not found
);
foo6(
fooTarget(); //It Works!
);

それは何ですか?fooTarget()からfoo5()にコードを貼り付けると、それも機能します

実際のコードからの縮小されたテストケース:

#include <cstring>

int main() {
    char word[] = "hey";
    int wordSize = getWordLenght(word); // error: getWordLenght not declared
}

int getWordLenght(char *word){
    return strlen(word);
}
4

2 に答える 2

2

コメントに投稿したコードでは、まだ宣言されていない関数を使用しています。後で宣言されますが、C++ は関数を解決するために後の宣言を調べません。

また、「th」の有向グラフは、「ht」ではなく「th」と綴られます。

于 2012-06-18T16:34:26.537 に答える
0
foo5(
foo6();
fooTarget(); //Identifier not found
);

改行を削除すると、これは次のように解析されます。

foo5( foo6(); fooTarget(); );

もちろん、これは正しい C++ コードではありません。

投稿されたコードには、他にも多くのエラーがあります。たとえば、どの関数プロトタイプに対しても戻り値の型を指定しません (それらがプロトタイプであることを意図している場合)。

于 2012-06-18T16:33:43.603 に答える