我试图弄清楚为什么我的C编译器使用以下(简化的)代码不会给我任何警告/错误。
函数声明没有参数,而函数实现则具有参数:
some.h:
void foo();
some.c:
static uint32_t count = 0;
void foo(uint32_t num) {
count += num;
print("Count: %u");
}
Run Code Online (Sandbox Code Playgroud)
main.c:
foo(100);
foo();
Run Code Online (Sandbox Code Playgroud)
输出:
Count: 100
Count: 100
Run Code Online (Sandbox Code Playgroud)
用于目标构建的编译器:
gcc-arm-none-eabi-4_9-2015q1-20150306-win32
Run Code Online (Sandbox Code Playgroud)
用于目标构建的链接器:
gcc-arm-none-eabi-4_9-2015q1-20150306-win32
Run Code Online (Sandbox Code Playgroud)
编译器标志:
-Wall -Werror -DuECC_CURVE=uECC_secp256r1 -DMEMORY_CHECK -DDEBUG -Os -g3 -DBACKTRACE