C函数后面多加两条下划线是干什么的?

我看到有个C语言程序,在头文件内有预编译命令#defineidxmallocidxmalloc__然后调用函数的地方格式是/*weightperelement*/idxt... 我看到有个C语言程序,在头文件内有预编译命令
#define idxmalloc idxmalloc__
然后调用函数的地方格式是

/* weight per element */

idxtype *elmwgt = idxmalloc(Klocal, "elmwgt");

这个 idxmalloc 是个第三方库中的函数,编译的时候需要打包成*.a文件,我查了下函数定义格式,定义时候函数名后并没有两条下划线

idxtype *idxmalloc(int n, char *msg)

{

if (n == 0)

return NULL;

return (idxtype *)GKmalloc(sizeof(idxtype)*n, msg);

}

问题就是为什么头文件要用 “#define idxmalloc idxmalloc__” 重新定义 idxmalloc 而不出错?
难道是因为调用动态库中函数的原因??
展开
 我来答
金色潜鸟
2014-09-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5740万
展开全部
c/c++ 标识符 名字允许含下划线,就像一个特殊字母一样。
idxmalloc__ 和 idxmalloc 是不同的名字,前者多了2个字符。

程序员 用 尾巴加2个下划线 作为 特殊类 的名字 是一种 偏好。
就像有人用 一个大写字母开头,后面用小写 的名字 作为 特殊类 的名字 一样,也是 是一种 偏好。
目的是 加强 程序 的 可读性 (程序员 自己 易懂)
lindaoling000
2014-09-23 · TA获得超过138个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:146万
展开全部
命名规则允许有下划线,就是 int a_; 这是合法的
更多追问追答
追问
什么意思?就是说后面加两条线和不加一样?
追答
不是一样的哦,
int a和int a_,这是两个变量,你就把下划线当作名字的一部分就是了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱夜009
2014-09-23 · TA获得超过192个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:211万
展开全部
不是, 因为代码风格问题 不必纠结
追问
就算真的不是因为动态库的原因,那么头文件里把 idxmalloc 的调用全部换成 idxmalloc__ ,也应该出错呀?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式