如果您阅读了任何函数的 linux 手册页,并且原型(prototype)对任何形式参数使用了诸如 static
或 restrict
之类的关键字,C 编译器是否会自动转换您的 var如果类型仍然匹配?
例如:
函数原型(prototype):int function_name(int* restrict param1, static int param2);
程序:
int *my_var1;
int my_var2;
//initialization
(..)
function_name(my_var1, my_var2);
(..)
在每种情况下,function_name()
是否像使用 restrict
和 static
声明的那样转换或处理我的变量,因为类型仍然是一样吗?
最佳答案
单个int
参数不能是static
,那是没有意义的。请提供真实的例子,以确保我们谈论的是同一件事。
当谈到restrict
时,它用来表示由它限定的指针是唯一指向那个特定对象的指针(或多或少,我在简化)。因此,谈论将指针“转换”为 restrict
是没有意义的,限定符是否真正适用取决于指针的使用方式。
一般情况下,参数将在可能的情况下进行转换以匹配函数的预期。
关于c - 函数原型(prototype)是否转换您在 C 中的实际参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55589759/