小编Lai*_*oni的帖子

C中变量名称中下划线之前分号的可能原因

本教程中关于C语言中的套接字编程,我偶然发现了以下行:

bzero((char *) &serv;_addr, sizeof(serv_addr));
Run Code Online (Sandbox Code Playgroud)

由于某种原因,变量serv_addr被写为serv;_addr将其作为参考传递.它看起来像一个拼写错误(并且似乎也没有使用标准标志进行编译),但是这种用法在整个代码中是一致的 - 每当包含下划线的变量名称作为引用传递时,在下划线之前插入分号:

if (bind(sockfd, (struct sockaddr *) &serv;_addr,
    sizeof(serv_addr)) < 0) 
    error("ERROR on binding");
[...]
newsockfd = accept(sockfd, 
    (struct sockaddr *) &cli;_addr, &clilen;);
[... and some more occurences]
Run Code Online (Sandbox Code Playgroud)

这种一致的用法(据我所知,gcc似乎同意)无效的语法让我想知道这种现象是否有一些解释.

以前有人见过这样的代码吗?有任何想法如何意外生成这样的代码?

c syntax

2
推荐指数
1
解决办法
119
查看次数

标签 统计

c ×1

syntax ×1