摘要:
每当看到这两个关键字,我都无比的头痛啊,当时看到理解了一下就明白了,但是在此遇到就忘记是怎么用的了,今天就索性写一写吧,好记性不如烂笔头呗,烂笔头不如存在网上。restrict是c99引入的,关键字restrict只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作都是基于该指针的,即不存在其他进行修改操作的途径。也就是说他只是告诉编译器,这个指针所指向的内容,只有这个指针可以修改。但事实伤也许还有其他方法可以修改这个内容。他只是给编译器提供一个保证,以保证编译器可以优化涉及指针的内容。C库中有两个函数可以从一个位置把字节复制到另一个位置。在C99标准下,它们的原型如下:vo 阅读全文
摘要:
这两个函数是最通用的I/O函数。实际上我们把所有read、readv、recv和recvfrom调用替换成recvmsg调用。类似地,各种输出函数调用也可以替换成sendmsg调用 #include ssize_t recvmsg(int sockfd,struct msghdr *msg,int flags);ssize_t sendmsg(int sockfd,stuct msghdr *msg,int flags); 这两个函数把大部分参数封装到一个msghdr结构中:struct msghdr{ void *msg_name; ... 阅读全文