c语言中函数的前置声明(MinGW编译器)

刚才写了一篇文章,c语言中函数的前置声明(MSVC编译器)

那篇文章采用的VC++6.0编译器编译的代码。也就是我们所说的MSVC编译器。

那么函数的前置声明规则对于MinGW编译器,是否也跟MSVC编译器一样呢?本篇文章采用MinGW编译器做测试。

不写前置声明

#include <stdio.h>

int main(void) {
	printf("%d\n", add(1, 1));
	return 0;
}

int add(int a, int b) {
	return a+b;
}

跟MSVC一样,会产生一个Warning:

写带参数的前置声明

#include <stdio.h>

int add(int a, int b);

int main(void) {
	printf("%d\n", add(1, 1));
	return 0;
}

int add(int a, int b) {
	return a+b;
}

不带参数的前置声明

#include <stdio.h>

int add();

int main(void) {
	printf("%d\n", add(1, 1));
	return 0;
}

int add(int a, int b) {
	return a+b;
}

这么来看,不管是MSVC编译器还是MinGW编译器。如果不写前置声明,都是会有warning出现的,但都不影响执行。

总结

遇到函数前置声明问题,

建议大家:

  1. 都要写前置声明。养成良好的变成习惯,让代码0warning最好。
  2. 参数加不加其实都无所谓。
  3. 可以在写代码调试的时候,不加参数。这样不用在改函数头时候还要翻到最前面改参数。(前置声明的参数你可以不写,但不能写成错误的!!)
  4. 在代码完工的时候,建议把前置声明的参数都加上。这样将来你自己或者其他人接手这段代码的时候,就很方便的在main函数之前,就知道有哪些函数存在。一目了然。

 

作者: 高志远

高志远,24岁,男生

发表评论

邮箱地址不会被公开。