关于C语言源码的问题
#include <errno.h>
#include <unistd.h>
#include <sys/syscall.h>
libc_hidden_proto(brk)
/* This must be initialized data because commons can't have aliases. */
void *__curbrk attribute_hidden = 0;
int brk (void *addr)
{
void *newbrk = (void*)INTERNAL_SYSCALL(brk, , 1, addr);
__curbrk = newbrk;
if (newbrk < addr) {
__set_errno (ENOMEM);
return -1;
}
return 0;
}
libc_hidden_def(brk)
-----------------------
以上代码出自libc中的,代码也是CSDN下载的。
请问一下,void *__curbrk attribute_hidden = 0;是什么意思?C语言有这种方式的应用吗?
还有libc_hidden_proto(brk)和libc_hidden_def(brk)是什么意思?为什么我的TC把这段代码直接放进去运行不了。
谢谢各位了哈,
[解决办法]
gcc标记符号是不是对外可见的写法 不是C语言的语法