小编JoJ*_*sUp的帖子

C-gcc:没有使用不同的函数声明/实现的编译器警告

我试图弄清楚为什么我的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

c gcc declaration

1
推荐指数
1
解决办法
103
查看次数

标签 统计

c ×1

declaration ×1

gcc ×1