我想知道在头文件和 .c 文件中声明函数原型之间的细微差别。我有一个带有一些原型函数的头文件和一个带有这些函数的实际实现的一些 .c 文件。我在标题中做了一些更改,只添加了“__restrict”限定符(由 gcc 识别)。我的问题是我是否必须将“__restrict”限定符放在 .c 文件中(目前代码编译,所以我猜答案是否定的,但会感谢一些精确度)。
这对每个 C 限定符都有效吗?我可以在标题中添加一些“const”或“volatile”而不必在 .c 文件中执行相同的操作吗?
目前在标题中:
int myfunc_gettype (const mytype *__restrict, int *__restrict);
并在实现文件中:
int myfunc_gettype(const mytype *attr, int *type)