c语言
zhangwenjianqin
这个作者很懒,什么都没留下…
展开
-
strdup函数简介
strdup函数简介 收藏 用法:#include 功能:复制字符串s 说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。 举例: // strdup.c #include #include main() { char *s="this is just f";转载 2009-11-08 12:01:00 · 6069 阅读 · 0 评论 -
getopt函数与getopt_long函数的用法
--- 1 #include 2 #include 3 #include 4 int main(int argc, char **argv) 5 { 6 int result; 7 8 opterr = 0; //使getopt不行stderr输出错误信息 9 char c; 10 int msgl原创 2012-04-16 18:47:07 · 728 阅读 · 0 评论 -
c语言学习中遇到的几个关键知识
#define max(x, y) ({ \typeof(x) _max1 = (x);\typeof(y) _max2 = (y);\(void) (&_max1 == &_max2);\_max1 > _max2 ? _max1 : _max2; })以上为最大值的宏定义其中 (void) (&_max1 == &_max2),两种不同类型的指针变量原创 2012-04-16 18:50:13 · 564 阅读 · 0 评论 -
union应用
struct ftrace_branch_data {const char *func;const char *file;unsigned line;union {struct {unsigned long correct;unsigned long incorrect;};struct {unsigned long miss;unsigne原创 2012-04-16 18:58:48 · 450 阅读 · 0 评论 -
关于C的字节对齐
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些转载 2012-05-04 09:22:34 · 430 阅读 · 0 评论 -
BSS段、数据段、代码段、堆(heap)、栈(stack)
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通转载 2012-05-08 13:28:37 · 625 阅读 · 0 评论 -
变参的实现宏
参数是存放在栈中,从右至左存(即从左至右取)typedefine char* va_list;#define_INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1)) 字节以(int)对齐#define va_start(ap, v) (ap = (va_list)&v+ _INTSIZEOF(v))原创 2012-04-16 18:52:45 · 398 阅读 · 0 评论 -
去掉linux系统vi中出现^M字符的方法
去掉linux系统vi中出现^M字符的方法: ^M符号是windows系统下的換行符,在windows下的文本通过bin模式ftp上传到了unxi空间出现的,要去掉这些结束符,我们可以用dos2unix命令去掉,也可以直接在vi中操作去掉,实现方法如下:在test.txt文件中有如下内容: eeesdgtdfg dfgdfgfdgfd ^M ineesert into pusf转载 2013-03-19 15:06:05 · 1343 阅读 · 0 评论 -
一个灵活的打印控制
#include typedef enum { GT_TraceState_Disable = 0x00000000, GT_TraceState_Enable = 0x00000001, GT_TraceState_EndValue = 0x00000002} GT_TraceState;typedef enum { GT_ERR = 0x原创 2015-04-30 10:52:41 · 510 阅读 · 0 评论