五分钟前我做了一些我从未做过的事情(这不是关于性......)看看代码:
// g++ DeathToAllButMetal.cc
#include<iostream>
void DeathToAllButMetal(){
std::cout << "A MASTERPIECE MADE BY STEEL PANTHER" << std::endl;
}
int main(){
DeathToAllButMetal();
DeathToAllButMetal;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你看到我忘了"()"在第二个DeathToAllButMetal令人惊讶的编译器不会对我大喊大叫.所以对于编译器来说,这行代码意味着什么,但是什么呢?因为在跑步时,方法没有被调用......这看起来是一个基本问题,但我不记得曾经看过这个问题.
Car*_*rum 14
这只是一个无操作.函数的名称在该上下文中衰减为指向该函数的指针,但由于您没有对它执行任何操作,因此不会发生任何事情.如果您调高警告级别,您可能会收到"声明无效"的消息.例如,clang ++说(即使没有标志):
example.cpp:11:3: warning: expression result unused [-Wunused-value]
DeathToAllButMetal;
^~~~~~~~~~~~~~~~~~
1 warning generated.
Run Code Online (Sandbox Code Playgroud)
G ++也警告过,但我需要添加-Wall:
example.cpp: In function ‘int main()’:
example.cpp:11: warning: statement is a reference, not call, to function ‘DeathToAllButMetal’
example.cpp:11: warning: statement has no effect
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |