C语言
zhijun1988
嵌入式开发
展开
-
undefined reference to `__exidx_start‘ undefined reference to `__exidx_end‘ 编译错误
undefined reference to `__exidx_start' undefined reference to `__exidx_end' 编译错误原创 2022-06-20 11:22:57 · 1234 阅读 · 0 评论 -
新型的按键扫描程序,仅三行程序
新型的按键扫描程序不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不转载 2014-04-18 18:29:43 · 704 阅读 · 0 评论 -
strcpy strcmp memcpy源码
好久没有自己写博客了,现在把一些库函数的实现写一下,写在CSDN上,就当做收藏吧char *strcpy(char *dest, const char *src) // strlen(dest) >== strlen(src) { char *str = *dest; if ((NULL == str) || (NULL == src)) { return NUL原创 2014-02-18 18:22:31 · 750 阅读 · 1 评论 -
linux 中C语言便于调试的宏定义编写及 __FILE__,__FUNCTION__, __LINE__参数使用
在linux编程中,当文件数量变的众多之后,使用gdb调试就是一场灾难。因此在程序中加入合理的打印信息,定位错误出现的文件名,函数名,行号等信息,能更高效的定位到问题的所在。 下面定义了宏,分别是WARNING,INFO,ERROR,SHOW_TIME,DEBUG等。利用了 __FILE__,_FUNCTION__, __LINE__等变量。。。 _FILE__,转载 2013-12-16 09:29:09 · 1255 阅读 · 0 评论 -
C语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义
cC可变参目录(?)[+]C语言可变参简介写一个简单的可变参数的C函数 可变参数在编译器中的处理 可变参数在编程中要注意的问题 小结 C语言可变参简介 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的: int printf( const cha转载 2013-12-16 09:31:33 · 892 阅读 · 0 评论 -
Linux 操作系统 SIGTERM等信号意义
SIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT 建立CORE文件终止进程,并且生成core文件SIGILL 建立CORE文件 非法指令SIGTRAP 建立CORE文件 跟踪自陷SIGBUS 建立CORE文件 总线错误SIGSEGV 建立CORE文件转载 2013-12-05 17:35:01 · 1665 阅读 · 0 评论 -
C结构体之位域(位段)
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位转载 2013-12-04 10:55:45 · 797 阅读 · 0 评论 -
static inline内联函数
内联函数有些类似于宏。内联函数的代码会被直接嵌入在它被调用的地方,调用几次就嵌入几次,没有使用call指令。这样省去了函数调用时的一些额外开销,比如保存和恢复函数返回地址等,可以加快速度。不过调用次数多的话,会使可执行文件变大,这样会降低速度。相比起宏来说,内核开发者一般更喜欢使用内联函数。因为内联函数没有长度限制,格式限制。编译器还可以检查函数调用方式,以防止其被误用。static in转载 2013-12-11 13:36:57 · 1400 阅读 · 0 评论 -
C enum 枚举
copy:http://blog.csdn.net/sim120/article/details/9979203 1. 枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天转载 2013-12-02 10:34:23 · 916 阅读 · 0 评论