char * ft_name(args)是否等效于c中的char * ft_name(args)?

时间:2018-08-11 11:49:20

标签: c function

我是C语言的初学者,所以如果函数原型中的char* ft_name(args)char *ft_name(args)等效,我会有些困惑。

有人可以帮我吗

2 个答案:

答案 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)

等效。