【发布时间】:2015-07-14 07:16:31
【问题描述】:
我想知道如果在声明函数时跳过extern 存储类说明符有什么区别吗?具体来说,下面这两个有什么区别吗?
void foo ();
和
extern void foo();
【问题讨论】:
-
请注意,这两个声明都不是原型(在 C 中)。两者都声明了一个函数,该函数采用不确定(但固定)的参数列表,可能包括零个参数。不过,它不是一个“可变长度参数列表”(varargs)函数——它不像
printf()等人。 C++ 中的情况有所不同;该函数被声明为不带参数。 -
在函数声明中使用
extern绝对没有任何意义。这是一些陈旧的习惯,在今天绝对没有价值。