
C
文章平均质量分 88
rheostat
搬代码,筑程序
展开
-
printf格式化输出
本文来自:http://www.kuqin.com/language/20080420/7060.htmlprintf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。 ④m.转载 2012-03-11 14:51:07 · 502 阅读 · 0 评论 -
日志中自动记录所在函数名、文件名、行号
日志中自动记录所在函数名、文件名、行号http://blog.youkuaiyun.com/stuhu/article/details/1876973在后台程序运行出问题时,详尽的日志是抓错不可缺少的帮手,这里提供一个能自动记录日志触发点文件名、行号、函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__代码:#include #define LOG_DEBUG "DE转载 2013-02-01 11:37:56 · 978 阅读 · 0 评论 -
变长结构体的表示方法
变长结构体的表示方法分类: 编程 2010-08-07 17:31 798人阅读 评论(2)收藏 举报转载请注明出处: http://blog.youkuaiyun.com/zhangyang0402/archive/2010/08/07/5795614.aspx 在Linux程序中,经常会看到形如下面的结构体定义struct xfrm_algo { c转载 2013-01-25 11:04:30 · 678 阅读 · 0 评论 -
c/c++ 柔性数组 -- 结构体变长的妙用——0个元素的数组 (转载)
2010-04-22 18:22 c/c++ 柔性数组 -- 结构体变长的妙用——0个元素的数组 (转载)c/c++ 柔性数组 -- 结构体变长的妙用——0个元素的数组 有时我们需要产生一个结构体,实现了一种可变长度的结构。如何来实现呢? 看这个结构体的定义: typedef st_type{int nCnt;int item[0];}type_a; (转载 2013-01-25 11:33:56 · 1343 阅读 · 0 评论 -
妙用0元素数组 实现大小可变结构体
2008-04-06 20:31 妙用0元素数组 实现大小可变结构体#include #include #include struct aa{ int a; int b;};struct bb{ struct aa test[0];};int main(void){ struct bb *p=(stru转载 2013-01-25 11:17:31 · 623 阅读 · 0 评论 -
offsetof,搞嵌入式必须会的杀手锏
offsetof,搞嵌入式必须会的杀手锏offsetof在stddef.h中在嵌入式应用中,或许你对offsetof接触不多甚至根本没见过。如果是这样,那么从这一刻起就好好地掌握它,让它成为你的又一杀手锏吧。1. offsetof与EEPROM我们许多人可能都使用过一些非挥发性的存储器,如常见的EEPROM。我们经常使用它们在存储一些系统的配置参数和设备信息。在所有转载 2013-01-23 14:44:37 · 555 阅读 · 0 评论 -
宏定义之二(连接符,可变参数,文件名,行号,函数名)
宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等转自 http://blog.youkuaiyun.com/yiya1989/article/details/7849588先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等宏变量:先举一转载 2012-12-21 12:59:02 · 5686 阅读 · 0 评论 -
宏定义之一(可变参数宏)
宏定义之一(可变参数宏) C语言中定义了很多宏,宏定义为我们编写程序带来了方便,最近遇到了可变参数宏,以前冒似没怎么注意,现在记录下来。#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)main(){ char *p ="it is:" debug("%s转载 2012-12-21 12:52:43 · 1139 阅读 · 0 评论 -
指向二维数组的指针
指向二维数组的指针一. 二维数组元素的地址 为了说明问题, 我们定义以下二维数组: int a[3][4]={{0,1,2,3}, {4,5,6,7}, {8,9,10,11}}; a为二维数组名, 此数组有3行4列, 共12个元素。但也可这样来理解, 数组a由三个元素组成: a[0], a[1], a[2]。而它匀中每个元素又是一个一维数组, 且都含有4转载 2012-12-17 17:11:57 · 1517 阅读 · 0 评论 -
二维数组的动态分配及参数传递
二维数组的动态分配及参数传递1. C语言动态分配二维数组(1)已知第二维Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a));//4,指针printf("%d\n", sizeof(a[0]));/转载 2012-12-17 17:08:51 · 483 阅读 · 0 评论 -
sscanf 从字符串中读取与制定格式相符的数据
sscanf目录名称:头文件:返回值:说明:支持集合操作:例子:编辑本段名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buf转载 2012-09-12 15:03:30 · 6383 阅读 · 0 评论 -
GNU CC中的attribute
摘要:在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及其使用。---------------------------------------------------------声明: 此文为原创,欢迎转载,转载请保留如下信息转载 2012-05-26 15:22:40 · 991 阅读 · 1 评论 -
C语言开发之关于sprintf 你知道多少
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, a转载 2012-05-31 21:54:39 · 597 阅读 · 0 评论 -
GNU C 、ANSI C、标准C、标准c++的区别和联系
GNU C 、ANSI C、标准C、标准c++的区别和联系GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。它在编写linux的时候自己制作了一个标准成为 GNU C标准。ANSI 美国国家标准协会,它对C做的标准ANSI C标准后来被国际标准协会接收成为 标准C 所以 ANSI C 和标准C是一个概念转载 2012-05-29 23:14:08 · 7626 阅读 · 1 评论 -
printf格式化输出(推荐)
用 法: int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]type 规定数据输出方式,具体如下: 1.type 含义如下: d 有符号10进制整数 i 有符号10进制整数 o 有符号8进制整数 u转载 2012-03-11 15:01:40 · 796 阅读 · 0 评论 -
#pragma 预处理指令详解
#pragma 预处理指令详解(2006-12-5 15:33)在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。转载 2013-01-21 15:44:31 · 594 阅读 · 0 评论