
编程语言/C语言
huey2672
这个作者很懒,什么都没留下…
展开
-
strtok函数
函数原型: char *strtok(char *str, char const * delim);delim参数是一个字符串,定义了用作分隔符的字符集。str参数指定一个字符串,包含零个或多个有delim字符串中的一个或多个分隔符的token。strtok找到str的下一个token,并将其用NUL结尾,然后返回一个指向这个token的指针。如果strtok函数的第一个参数不是NU原创 2013-03-15 21:13:00 · 586 阅读 · 0 评论 -
两数互换
方法一: a ^= b; b ^= a; a ^= b;方法二: a = a + b; b = a - b; a = b - a;方法三: _asm { push a; push b; pop a; pop b; }方法四: __asm { mov eax, a; xchg eax, b; mov a, eax;转载 2013-03-19 22:01:55 · 557 阅读 · 0 评论 -
C语言的static关键字
1. 用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external变为internal,但标识符的存储类型和作用域不受影响,用这种方式声明的函数或者变量只能在声明它们的源文件中访问。2. 用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量,但变量的链接属性和作用域不受影响。用这种方式声明的变量在程序转载 2013-09-09 16:53:34 · 455 阅读 · 0 评论 -
可变参数列表
C语言可变参数列表通过宏来实现,这些宏定义在stdarg.h头文件中,是标准库中的一部分。stdarg.h头文件声明了一个类型va_list和三个宏——va_start,va_end和va_arg。通过声明一个va_list类型的变量与这几个宏配合使用,访问参数的值。可变参数列表位于一个或多个普通参数的后面,在函数原型中用一个省略号表示。va_list类型的变量通过va_start来初始化原创 2013-03-17 23:07:34 · 490 阅读 · 0 评论 -
C语言 数字和字符串的转换
1. 字符串转换成数字头文件: 函数原型说明int atoi(char const *str);将字符串转换成整型数long atol(char const *str);将字符串转换成长整型数double atof(char const *str);将字符串转换成浮点型数long int strtol(char原创 2013-09-13 10:26:59 · 773 阅读 · 0 评论 -
setjmp & longjmp
头文件: setjmp.h函数原型: int setjmp(jmp_buf state); void longjmp(jmp_buf state, int value);setjmp和longjmp函数提供了实现类似goto语句的机制,首先声明一个jmp_buf变量,并调用setjmp函数对其初始化,setjmp的返回值为0。setjmp吧程序的原创 2013-09-12 16:54:31 · 519 阅读 · 0 评论 -
C语言 位段的简单示例
1. 简单示例,求二进制数中1的个数:#include typedef struct { unsigned char a:1; unsigned char b:1; unsigned char c:1; unsigned char d:1; unsigned char e:1; unsigned char f:1; unsigned char g:1; unsigned原创 2013-09-13 14:46:46 · 672 阅读 · 0 评论 -
C语言中一些易犯错的代码
1.int a[5] = {0, 1, 2, 3, 4};printf("2[a] = %d\n", 2[a]);表达式2[a]是合法的,把它转换成对等的间接访问表达式:*(2+(a)),内层括号是冗余的,同时加法运算的两个操作数是可以互换的,所以,表达式*(2+(a))与*(a+2)是一样的。所以,看上去颇为古怪的表达式2[a]与a[2]是相等的 。2.原创 2013-09-13 13:20:06 · 700 阅读 · 0 评论