
linuxC语言
sunboy_Peter
http://sunboy_lewis.com.cn
展开
-
结构体中的位域
位域(位段) 1,概念: 所谓"位域"是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。本质上是一种结构类型, 不过其成员是按二进位分配的。 每个域有一个域名,在程序中可以按域名访问对应的二进制区域。 位域可以把几个不同的对象用一个字节的二进制位域来表示。 位域成员应该声明为int、unsigned int或signed int类型(short char long)。 2,定义格式 struct <位域标签名>{ ...原创 2020-09-11 17:53:40 · 2567 阅读 · 0 评论 -
C预编译中关于字节对齐的问题(linux认证)
通过#pragma pack(n)改变C编译器的字节对齐方式 在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相转载 2013-04-01 08:52:17 · 458 阅读 · 0 评论 -
可变参宏
带有可变参数的宏(Macros with a Variable Number of Arguments) 在1999年版本的ISO C 标准中,宏可以象函数一样,定义时可以带有可变参数。宏的语法和函数的语法类似。下面有个例子: #define debug(format, ...) fprintf (st翻译 2013-03-19 16:32:55 · 481 阅读 · 0 评论 -
10进制转16进制(采用移位实现)
#include #include //#define print(format,...) fprintf(stderr,format,##__VA_ARGS__)//#define print1(format,args...) fprintf(stderr,format,##args)/* 功能: 该函数采用移位实现10进制数转换成16进制数 函数名: to1原创 2013-03-19 16:31:49 · 1366 阅读 · 0 评论 -
实现一个strtok
#include #include #include #define SIZE 60struct stu{ int sno; char name[20]; float score;};typedef char (*type)[20];type fun(char *str,char flag);int main(int argc,char **arg原创 2013-06-19 17:51:50 · 445 阅读 · 0 评论 -
用C语言进行CGI程序设计
用C语言进行CGI程序设计 一、CGI概述 CGI(公用网关接口)规定了Web服务器调用其他可执行程序(CGI程 序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互,也就是CGI程序接受Web浏览器发送给Web服务器的信息,进行处理,将响应结果再回送给Web服务器及Web浏览器。CGI程序一般完成Web网页中表单(Form)数据的处理、数据库查询和实现与传转载 2015-08-24 13:50:49 · 484 阅读 · 1 评论 -
C语言中的typedef新解
很多朋友在用C语言做项目过程中都遇到过一些比较特殊的数据类型,比如:uint32_tpid_t pthread_t等。在C的标准语法中并没有给出这样的基本类型,那么这些类型是怎么来的呢,用相关工具去跟踪源码会发现,这些类型其实是通过关键字typedef定义的,那么typedef的功能是什么,又是如何定义类型的呢?下面就给大家介绍一下本人的见解。首先,typedef关键字主要是用来原创 2017-03-20 18:04:27 · 445 阅读 · 0 评论