C++(GNU GCC g ++)では、私のコードは()を使わない関数を "呼び出し"ています。 この関数は機能していませんが、コンパイルは正常です。g ++かっこなしの関数を呼び出す(f()ではなくf;)。なぜそれは常に1を返しますか?
さらに驚くべきことに、コードは常に何らかの説明があり1 ...
を返しますか?
私は、関数名は、普通のポインタであることが期待が、それは少し違うようだ...
は、私はすべての1の唯一のチャンスで取得しましたか?
#include <iostream>
using namespace std;
void pr()
{
cout << "sth";
}
int main()
{
pr;
cout << pr; // output: 1
cout << *pr; // output: 1
cout << ≺ // output: 1
}
関数アドレスのboolへの暗黙のキャスト。 –
この投稿は役に立つかもしれません:http://stackoverflow.com/questions/2064692/how-to-print-function-pointers-with-cout – taocp
暗黙の**変換**関数アドレスのboolへの変換。暗黙のキャストのようなものはありません。 –