
c语言 学习笔记
文章平均质量分 74
潘多拉的小石头
愚钝对于我来说再合适不过
展开
-
c 结构体对齐(二)
首先感谢原作者,提供学习资源.现转载来学习,也为不明白对齐方式的同学提供学习资源!gcc 中的"__attribute__ ((packed))" __attrubte__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。#define __u8 unsigned char#define _转载 2013-10-14 10:43:26 · 646 阅读 · 0 评论 -
c 结构对齐
首先感谢原作者,提供学习资源.现转载来学习,也为不明白对齐方式的同学提供学习资源!一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原转载 2013-10-14 10:30:41 · 401 阅读 · 0 评论 -
可变参数列表(va_list,va_arg,va_copy,va_start,va_end)
va_list arg_ptr:定义一个指向个数可变的参数列表指针; va_start(arg_ptr, argN):使参数列表指针arg_ptr指向函数参数列表中的第一个可选参数,说明:argN是位于第一个可选参数之前的固定参数,(或者说,最后一个固定参数;…之前的一个参数),函数参数列表中参数在内存中的顺序与函数声明时的顺序是一致的。如果有一va函数的声明是void va_tes转载 2013-10-13 00:34:55 · 682 阅读 · 0 评论 -
C语言中空格,空字符,字符数组结束符的区别
空格符号和空字符是不一样的,在ASCII里面,空格(space)符号的ASCII码是0x20,而空字符是0x0, 2个是完全不一样的2个字符呵呵.空字符 一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代表什么都没有的字符.好比回车0x0A和换行0x0D虽然不显示,但是也是控制字符的一种.(这些字符以前是用于打印机的,所以很多都没有用了)字转载 2013-09-26 21:45:01 · 1396 阅读 · 0 评论 -
sscanf()函数中format问题
sscanf()的用法和例子这里有些sscanf()的一些使用说明,都是从论坛,Blog里整理出来的。供大家使用。 通过学习和使用个人认为,在字符串格式不是很复杂,但是也并不简单的时候用这个函数比较合适,这个尺度就要靠自己把握了,字符串不是很复杂,但自己写个处理的函数比较麻烦,效率也不高,就用这个函数,如果字符串很复杂,那就用正则表达式吧。 不多说了,看看下面原创 2013-09-02 10:41:17 · 1002 阅读 · 0 评论 -
C语言typedef的用法
首先对原作者表示感谢。一.基本概念剖析int* (*a[5])(int, char*); //#1 void (*b[10]) (void (*)()); //#2 double(*)() (*pa)[9]; //#31.C语言中函数声明和数组声明。函数声明一般是这样: int fun(int, double); 对应函数指转载 2013-10-05 23:47:09 · 535 阅读 · 0 评论 -
c语言操作符优先级(转自博客园)
C语言操作符优先级优先级运算符含 义要求运算对象的个数结合方向1()[]->.圆括号下标运算符指向结构体成员运算符结构体成员运算符 自左至右2!逻辑非运算符1(单目运转载 2013-08-25 19:46:36 · 544 阅读 · 0 评论 -
宏定义之 _FILE_, _LINE_
注:本文转自蚂蚁跳楼博客园,感谢作者整理 前言:我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用宏定义的方式转载 2013-08-24 01:27:07 · 820 阅读 · 0 评论 -
字符串常量、数组
字符串常量,出现在于表达式中时,它的只是一个指针常量。编译器把这些指定字符的一份拷贝存储在内存的某个位置。并存储一个指向第一个字符的指针。‘\0’并以NULL结束但是,当数组名用于表达式中时,他们的值也是指针常量。我们可以对他们进行下标引用、间接访问以及指针运算。‘\0’并以NULL结束"xyz"+1 :字符串常量实际是个指针,所以这个表达式就是:“指针值加上1”的值。它的结果是个转载 2013-08-22 20:06:14 · 478 阅读 · 0 评论 -
#ifndef、#define、#endif
代码 #ifndef _CLOCK_T_DEFINED typedef long clock_t; #define _CLOCK_T_DEFINED #endif 代码#ifndef _TM_DEFINED struct tm { int tm_sec; /* 秒 – 取值区间为[0,59] */ int原创 2013-10-05 12:41:27 · 641 阅读 · 0 评论 -
聚合类型结构体
聚合数据类型:包括数组和结构结构成员的个成员不相同,所以的结构通过名字来访问.数组中的数据类型都相同,可以通过下标或指针来访问.结构声明: 声明一 struct tag{ int a; float b; char c;}X// (这个x是干嘛的) 创建一个名叫:x原创 2013-08-23 12:13:27 · 991 阅读 · 0 评论