关注于语言本身的一些知识,譬如语法、风格、陷阱等。
C语言之struct参数传递与结构匹配
摘要:1、结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同:首先结构体可以在一个结构中声明不同的数据类型,;第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称可看作常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组...
阅读全文
posted @
2009-08-19 23:34
hilyhoo
阅读(1401)
推荐(0)
C语言之struct大小、首地址与内存对齐
摘要:被问到如下问题:给定一个结构体中某个变量地址,可否得到结构体变量的地址?答案是可以,但是对不同的场合有不同的结果;这与微处理器平台、编译器的处理不可分割。首先,对于处理器,大尾端、小尾端的因素必须考虑;其次:一、 ANSI C标准中并没有规定,相邻声明的变量在内存中一定要相邻。为了程序的高效性,内存对齐问题由编译器自行灵活处理,这样导致相邻的变量之间可能会有一些填充 字节。对于基本数据类型(int...
阅读全文
posted @
2009-08-19 22:48
hilyhoo
阅读(1831)
推荐(1)
C语言之memcpy()函数
摘要:昨天被问了个很基础的C语言的问题。写出u8 * memcpy(u8 * src, u8 * dst, size_t len)的定义。比较紧张,以为要考虑很多东西;于是,将很多乱七八糟的情况考虑了下。一般写成void *,强制转换成8bit的类型。事实上,由于这里使用unsigned char型,不再需要强制转换了。src和dst是否为空,我用if判断。如果src空,则出错;dst空,当时想到怎样解...
阅读全文
posted @
2009-08-16 00:04
hilyhoo
阅读(1110)
推荐(0)
C语言之IP排序
摘要:看到一个比较初级的问题,4个字段的ip,如何排序? 分析: 排序是按每个字段的整数值进行,而整个ip地址是字符串型,故需要逐个字段读取。 注意到每个字段0~255,可以用一个字节表示,而要比较大小,故用unsigned char型。 读取后,最自然的想法是逐个字段比较,依次比较4个字段,这个可以分别对每个字段调用排序。 想到基数排序的原理,不妨以256作为基数实施基数排序。 想到这里,既...
阅读全文
posted @
2009-08-15 16:35
hilyhoo
阅读(470)
推荐(0)
C语言之尾递归
摘要:3 .p2align 4 ,,15 4 .globl recurve_tail 5 .type recurve_tail , @function 6 recurve_tail : 7 pushl %ebp 8 movl %esp , %ebp 9 movl 8 (%ebp ), %edx 10 movl 12 (%ebp ), %eax 11 cmpl ...
阅读全文
posted @
2009-08-15 16:35
hilyhoo
阅读(627)
推荐(0)
C语言之extern作用于指针、数组
摘要:以下为测试环境: gcc 4.3.2-1-1 GNU/Linux Debian 5.0 (刚开始使用csdn博客,没经验。由于中间调试时间较长,忘了备份,刚写完,赶紧发了。一看,没有;再看,还是没有。挥去愤怒,重写一篇。望读者以此为鉴,及时备份。:-) 1、extern与static extern 对变量、函数声明;编译时可见,即告诉编译器:“老兄,虽然这个文件里,我没有定义,...
阅读全文
posted @
2009-08-15 16:34
hilyhoo
阅读(2986)
推荐(0)