看下面的代码:
#include <iostream>
int add(int a, int b) { return a + b; }
int mul(int a, int b) { return a * b; }
int main() {
int a, b; std::cin >> a >> b;
std::cout << add(a, b) << std::endl;
return 0;
}
很显然 mul 是没有用到的。用 g++ .\test.cpp -o .\test.exe -std=c++14 -Wall -Wextra,并没有任何警告。
但是如果我将两个函数的声明都加上 static,即
static int add(...) { ... }
static int mul(...) { ... }
使用同样的编译命令编译,就会出现 -Wunused-function 警告。警告内容是这样的:
.\test.cpp:4:12: warning: 'int mul(int, int)' defined but not used [-Wunused-function]
static int mul(int a, int b) { return a * b; }
^~~
所以说:
static 函数并开启 -Wall -Wextra 会不会对程序的运行结果或者效率有影响?