摘要:
###GNU Cgnu项目:http://www.gnu.org/software/software.htmlftp:http://ftp.gnu.org/gnu/托管:http://savannah.gnu.org/[GNU C与ANSI C ](http://blog.csdn.net/ssds... 阅读全文
随笔分类 - ANSI C
[转载]嵌入式C语言中的Doxygen注释模板
2015-01-07 14:04 by Benoly, 1796 阅读, 收藏, 编辑
摘要:
http://blog.csdn.net/willerency/article/details/7083953 嵌入式C语言开发中通常使用Doxygen进行文档的生成。Doxygen支持多种格式,非常灵活,但排版不好就会显的比较杂乱,不便于阅读。下面给出一份注释模板。#####一、文件注释,放于文件... 阅读全文
[整理]VS2010中如何添加“依赖","库目录","包含目录"
2014-09-22 10:20 by Benoly, 971 阅读, 收藏, 编辑
摘要:
VS2010中如何添加“依赖","库目录","包含目录"1. 添加编译所需要(依赖)的 lib 文件[解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。(等同于“#pragma comment(lib, "wi... 阅读全文
[整理]内存动态分配
2014-07-18 11:38 by Benoly, 207 阅读, 收藏, 编辑
摘要:
1.不要直接调用mallocvoid *malloc(unsigned int num_bytes);malloc函数的工作机制malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,... 阅读全文
[整理]C结构实现位段(bit field)
2014-07-16 14:36 by Benoly, 291 阅读, 收藏, 编辑
摘要:
#include #include typedef struct A{ int a:5; int b:3; unsigned c:8; unsigned d:8;} Type_A;/* VS2010, Windows XP, Debug模式下运行 */int main(void){ struc... 阅读全文
[转载]关于符号扩展
2014-07-16 12:46 by Benoly, 794 阅读, 收藏, 编辑
摘要:
为什么要进行符号位扩展?因为符号扩展了才能有足够的位数,因为有的指令要求两个操作数的位数是相同的。http://blog.sina.com.cn/s/blog_7880b6e30100vo06.html一、短数据类型扩展为长数据类型1、要扩展的短数据类型为有符号数的进行符号扩展,即短数据类型的符号位... 阅读全文
[转载]memset()的效率
2014-07-15 16:56 by Benoly, 4559 阅读, 收藏, 编辑
摘要:
http://blog.csdn.net/hackbuteer1/article/details/7343189void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,... 阅读全文
[整理]内存重叠之memcpy、memmove
2014-07-15 16:04 by Benoly, 7043 阅读, 收藏, 编辑
摘要:
函数原型:void *memcpy( void *dest, const void *src, size_t count );void *memmove( void* dest, const void* src, size_t count );1.memcpy和memmove相同点都是用于从src拷... 阅读全文
[转载]strtok函数和strtok_r函数
2014-07-14 17:58 by Benoly, 269 阅读, 收藏, 编辑
摘要:
1.一个应用实例网络上一个比较经典的例子是将字符串切分,存入结构体中。如,现有结构体typedef struct person{ char name[25]; char sex[10]; char age[4];}Person;需从字符串 char buffer[INFO_MAX_SZ]="Fred... 阅读全文
[转载]C语言程序的内存分配方式
2014-07-08 17:14 by Benoly, 236 阅读, 收藏, 编辑
摘要:
"声明一个数组时,编译器将根据声明所指定的元素数量为数量为数组保留内存空间。"其实就是编译器在编译的过程中,会加入几条汇编指令在程序里处理内存分配,并不是说编译时就分配了内存,不要理解错了。-------------------1.内存分配方式 内存分配方式有三种: [1]从静态存 储区域分配。内存... 阅读全文
[整理]左值和右值
2014-07-04 06:43 by Benoly, 322 阅读, 收藏, 编辑
摘要:
c99 6.3.2.1/1An lvalue is an expression with an object type or an incomplete type other than void;53) What is sometimes called "rvalue" is in this Int... 阅读全文
[整理]浮点数的自增陷阱
2014-06-30 23:32 by Benoly, 2914 阅读, 收藏, 编辑
摘要:
1.++--适用于浮点数2.实际不使用浮点数的++--浮点数 包括float 、double、 long double等等都是近似存储所以每一个浮点数的值都不是准确的于是如果采取自加 在一些特殊情况下a的近似值和a+1的近似值会等同即自加完全没有效果如果用在循环中 就有可能导致死循环.#includ... 阅读全文
[转载]浅析为什么char类型的范围是 —128~+127
2014-06-24 23:30 by Benoly, 331 阅读, 收藏, 编辑
摘要:
http://blog.csdn.net/daiyutage/article/details/8575248 在C语言中, signed char 类型的范围为-128~127,每本教科书上也这么写,但是没有哪一本书上(包括老师)也不会给你为什么是-128~127,这个问题貌似看起来也很简单容易, ... 阅读全文
[转载]学习C语言基本思路与参考书籍
2014-06-24 20:42 by Benoly, 281 阅读, 收藏, 编辑
摘要:
http://zhuanlan.zhihu.com/linjr/19694823计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求。如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC6.0来教大家上机实验,那你不妨看看本文,这里有一些建议可以帮助你不会脱离社会太远。考虑到这是一个过来... 阅读全文
[整理]函数的声明中的数组参数
2014-06-24 17:06 by Benoly, 572 阅读, 收藏, 编辑
摘要:
在函数的声明的数组参数中,并为指明数组的长度。因为在C中,允许单个函数操纵任意长度的一维数组。这个特性不利的一面是函数没法知道该数组的长度。如果确实需要知道数组的长度,必须作为一个单独的参数传递给函数。当数组名作为实参时,传递给函数的实际上是一个指向数组起始位置的指针。/*开发环境:vs2010 w... 阅读全文
[整理]C中的静态存储区
2014-06-23 13:34 by Benoly, 631 阅读, 收藏, 编辑
摘要:
静态存储区:即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。int main(void){ char a[] = "Hello Wor... 阅读全文
[整理]C语言中的a,&a和&a[0]
2014-06-22 10:46 by Benoly, 793 阅读, 收藏, 编辑
摘要:
#includeint main(void){ int a[]={1,2,3}; printf("%0X\n",a); // a的类型原本是int [3],是个导出类型; 当a赋值给int *指针的时候,类型退化为int *,a+1指向a[1] printf("%0X\n",&a)... 阅读全文
[整理]改进的冒泡排序
2014-06-20 17:49 by Benoly, 292 阅读, 收藏, 编辑
摘要:
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,... 阅读全文
[整理]快速排序
2014-06-20 16:41 by Benoly, 300 阅读, 收藏, 编辑
摘要:
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个... 阅读全文
[整理]C语言中的static静态对象
2014-06-18 23:28 by Benoly, 354 阅读, 收藏, 编辑
摘要:
1.说明外部对象(静态外部变量和静态函数) (1)static 用于说明外部变量或函数,使该对象的作用域限定为被编译原文件的剩余部分,即从对象说明开始到所在源文件的结束部分; (2)被static说明的外部对象对于其他的源文件是隐藏的,也就是说其他源文件无法访问得到; (3)不会和同一程序的其他源文... 阅读全文