我是C语言的初学者,所以如果函数原型中的char* ft_name(args)
与char *ft_name(args)
等效,我会有些困惑。
有人可以帮我吗
答案 0 :(得分:4)
从编译器的角度来看,C编译器会忽略标记之间的空白和两个偏移量
char*ft_name(args);
所以它们完全一样。
编译器唯一不忽略空白的地方是字符串文字,例如"Hello world"
程序:
int main(int argc, char *
* argv)
{
size_t s =
strlen(argv [ 0] );
printf("%zu %s\n",
s, argv
[
0
]);
}
被编译器视为
int main(int argc,char**argv){size_t s=strlen(argv[0]);printf("%zu %s\n",s,argv[0]);}
在宏扩展的预处理器阶段,空白不会被忽略。
答案 1 :(得分:3)
是。
char* ft_name(args)
和
char *ft_name(args)
等效。