Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9193718
  • 博文数量: 1728
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19870
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1728)

文章存档

2024年(4)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: Android平台

2015-07-30 17:54:00


点击(此处)折叠或打开

  1. printf 打印技巧

  2. %#x 为16进制打印, 并且用 0x 作为前导。

  3. C语言printf函数格式字符:
  4. 1、%d,按整型数据的实际长度输出。
  5. 2、%md,m为指定的输出字段的宽度。
  6. 3、%ld,输出长整型数据。
  7. 4、%o格式符,以八进制整型式输出整数。
  8. 5、%x格式符,以十六进制数形式输出整数。
  9. 6、%u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。
  10. 7、%c格式符,用来输出一个字符。
  11. 8、%s格式符,用来输出一个字符串。 可以指定宽度
  12. 9、%f格式符,用来输出实数(包括单双精度),以小数形式输出。
  13. 10、%e格式符,以指数形式输出实数。
  14. 11、%g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较小的一种),且不输出无意义的零。
  15. 12、%p格式符,用于变量地址的输出。
  16. 13. %m, 用来打印error对应的错误值,不需要有对一个的占位参数, 并且在格式化串中可以在任意位置。 例如
  17.     int a=5, b=6; printf("%m %04d %m %05d %m", a, b); 是可以的。

  18. 13、%[scanfset]:
  19. scanfset 有两种形式:一种是以非 “^” 字符开头的 scanset , 表示在读入字符串时将匹配所有在 scanfset 中出现的字符,遇到非scanfset 中的字符时输入就结束;
  20. 另外一种形式是以 “^” 字符开头的scanfset ,表示在读入字符串时将匹配所有不在scanfset 中出现的字符,遇到scanfset 中的字符输入就结束。

WEAK 范例

点击(此处)折叠或打开

  1. /* main.c */
  2. #include <string.h>
  3. #include <stdio.h>

  4. #define WEAK __attribute__ ((weak))
  5. //#define WEAK __weak

  6. int WEAK foo(int);

  7. #pragma weak foo = default_foo

  8. int main()
  9. {
  10.     int iret = foo(10);
  11.     printf("[%d]\n", iret);
  12. }

  13. int default_foo(int arg)
  14. {
  15.     return arg;
  16. }

点击(此处)折叠或打开

  1. #include <string.h>

  2. int foo(int a)
  3. {
  4.     return a*10;
  5. }

点击(此处)折叠或打开

  1. TARGET = foo
  2. SOURCE = main.c pub.c
  3. OBJS = $(SOURCE:.c=.o)

  4. .c.o:
  5.     gcc -o ${@} -c ${<}

  6. all: ${TARGET}

  7. ${TARGET}: ${OBJS}
  8.     gcc -o $@ ${OBJS}

其他还有

  1. #define PACK_END __attribute__((packed)) /*用于限定结构体单字节对齐*/

  2. typedef struct
  3. {
  4.     UINT8 channelNumber;
  5.     UINT64 startTime;
  6.     UINT16 duration;

  7. } PACK_END IEEEtypes_Common11hHdr_MeasReq_t;

  8. //另外有些编译要求的语法为
  9. typedef __packed struct
  10. {
  11.     UINT8 channelNumber;
  12.     UINT64 startTime;
  13.     UINT16 duration;

  14. } IEEEtypes_Basic_MeasReq_t

通用格式. 限定 字节对齐的. (windows上也适用)

#pragma pack(push, 1)
...
#pragma pack(pop)

阅读(2108) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~