
C/C++
文章平均质量分 57
chaolumon
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Gcc编译时指定动态库搜索路径
1.调用gcc是可以指定连接选项(也就是说gcc调用ld时候的选): -Wl 。每个子选项都需要用逗号隔开具体用法是 $ gcc -gccoption1 -Wl,-ldoption1,-ldoption1 -gccoption32.ld 连接器可以在连接阶段制定最终二进制代码的动态库搜索路径,具体做法是在可执行文件的.dyna原创 2009-02-23 11:12:00 · 2153 阅读 · 0 评论 -
分析kernel的initcall函数
先来看看这些initcall函数的声明:/* include/linux/init.h *//* initcalls are now grouped by functionality into separate * subsections. Ordering inside the subsections is determined* by link order. * For backwards c转载 2009-08-20 16:17:00 · 278 阅读 · 0 评论 -
GNU LD脚本解
原文地址 http://www.cublog.cn/u/13991/showart_177822.html 目录 1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式12. 暗含的连接脚本1. 概论 每一个链接过程都由链接脚本(link转载 2009-09-19 22:56:00 · 396 阅读 · 0 评论 -
C函数返回结构体在汇编下的实现
原文链接:http://blog.youkuaiyun.com/sytstarac/archive/2009/08/05/4411519.aspx 编译器:vc++6.0(因为此种实现依赖编译器处理)此处只简要叙述一下机制。并附部分关键指令序列。准备:1,关于EBP:称做栈基址指针。为什么这样说呢?我们先来看看函数调用的过程:参数从右到左压栈。call指令执行,该指令将导致EIP压转载 2009-09-23 10:46:00 · 628 阅读 · 0 评论 -
C语言宏的高级应用
关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) / do{ if (EXP) / fprintf(stderr, "Warning: " #EXP "/n"); } wh转载 2009-10-19 15:48:00 · 236 阅读 · 0 评论 -
c 语言可变参数函数例子
#include#include#includevoid demo(char *msg,...){ va_list argp; int arg_number=0; char *para = msg; va_start(argp,msg); while(1){ if ( strcmp( para, "/0") != 0 ) { arg_numbe原创 2009-10-21 09:47:00 · 142 阅读 · 0 评论 -
大小端模式的整理
1.对于16位32位或64位的总线,在总线上传输的是数据的值而不是内存数据。因此总线两 端看到的数据的值是相等的,而字节顺序不一定是一样的。比如32位PCI总线,主机是le ,设备是be的情况下,有一个数据值是 0x12345678;数据在主机内存分布如下: 数据在le机器内存中的分布: |7 0|15 8|23 16|31 24|原创 2009-10-28 09:04:00 · 319 阅读 · 0 评论