
C与C++
文章平均质量分 70
TrueLie
这个作者很懒,什么都没留下…
展开
-
C语言中可变参数的用法(转载)
C语言中可变参数的用法(转载)发表:2004-1-25 14:26:09 出处:你的博客网(yourblog.org)C语言中可变参数的用法我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我们可以原创 2006-02-09 21:40:00 · 860 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写转载 2008-01-31 16:52:00 · 869 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)转载 2008-01-31 17:25:00 · 960 阅读 · 0 评论 -
内存对齐与 struct型数据的内存布局
当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的首地址等于整个结转载 2008-01-31 17:26:00 · 1019 阅读 · 0 评论 -
>--“ 理解函数声明 ”
>--“ 理解函数声明 ” 有一次,一个程序员与我交谈一个问题。他当时正在编写一个独立运行于某种微处理器上的c程序。当计算机启动时,硬件将调用首地址为0位置的子例程。为了模拟开机启动时的情形,我们必须设计出个c语句,以显式调用该于例程。经过一段时间的思考,我们最后得到的语句如下:(*(void(*)())0)();像这样的表达式恐怕会令每个c程序员的内心都“不寒而栗”。然而,他转载 2008-01-31 16:49:00 · 925 阅读 · 0 评论 -
考查嵌入式C开发人员的最好的16道题
编者按:非常基本的问题,一个信息类(计算机,资讯工程,电子工程, 通信工程)专业的本科毕业生应该达到的水平约定: 1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了 2)数据类型 char 一个字节 1 byte int 两个字节 2 byte (16位系统,认为整型是2个字节) long int 四个字节 4 byte转载 2008-01-31 16:44:00 · 1412 阅读 · 0 评论 -
printf输出格式
格式代码 A ABC ABCDEFGH转载 2007-07-15 21:46:00 · 20791 阅读 · 7 评论 -
C语言宏定义技巧
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned转载 2007-07-11 23:32:00 · 1153 阅读 · 0 评论 -
8088 汇编速查手册(ZZ)
8088 汇编速查手册 一、数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX先符号扩展,再传送. MOVZX先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出转载 2006-06-07 14:55:00 · 998 阅读 · 0 评论 -
c语言运算符优先级
c语言运算符优先级Turbo C的运算符非常丰富, 主要分为三大类: 算术运算符, 关系运算符与 逻辑运算符, 按位运算符。除此之外, 还有一些用于完成特殊任务的运算符。下 面分别进行介绍。 5.1 算术运算符 Turbo C的算术运算符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符转载 2006-06-06 22:28:00 · 2004 阅读 · 0 评论 -
ASCII码表
DEC HEX CHR DEC HEX CHR DEC HEX CHR原创 2006-02-12 15:40:00 · 1098 阅读 · 0 评论 -
[转贴] 你会用sizeof吗?(vc篇) kernelhao(原作)
[转贴] 你会用sizeof吗?(vc篇) kernelhao(原作) 发表:2004-4-9 11:55:52 出处:你的博客网(yourblog.org) 本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。 1、 sizeof应用在结构上的情况 请看下面的结构: s转载 2006-02-09 22:00:00 · 1023 阅读 · 0 评论 -
指针函数和函数指针有什么区别(转载)
指针函数和函数指针有什么区别(转载)发表:2004-1-25 14:23:02 出处:你的博客网(yourblog.org)指针函数和函数指针有什么区别1,这两个概念都是简称,指针函数是指带指针的函数,即本质是一个函数。我们知道函数都又返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。其定义格式如下所示:返回类型标识符 *返回名称(形式参数表){ 函数体 }原创 2006-02-09 21:45:00 · 921 阅读 · 0 评论 -
volatile的用法
volatile的用法发布时间:2005年1月15日点击次数:2532详细内容:volatile的用法volatile的本意是“易变的”由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如:static int i=0;int main(void){...while (1){if (i) dosomething();}}/* Interrupt原创 2006-02-09 21:41:00 · 1135 阅读 · 0 评论 -
Big-endia与Little-endian
big endian和little endian big endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。那么写到文件里时,究竟是将6C写在前面,还是将49写在前 面?如果将6C写在前面,就是big endian。还是将49写在前面,就是little endian。 “endian”这个词出自《格列佛游记》。小人国的内原创 2006-02-10 21:35:00 · 2927 阅读 · 0 评论 -
我眼中的指针
我眼中的指针--学习指针不可少的好文章2002-8-9发信人: girlrong (阿蓉), 信区: C标 题: 我眼中的指针--作者序发信站: 网易虚拟社区 (Mon Aug 2 16:12:02 1999), 站内信件为初学者服务。这是我的帖子的宗旨。我也是个初学者(强调了无数遍了),我以我的理解把初学者觉得难懂的东西用浅显的语言写出来。由于小学时语文没学好,所以竭尽全力也未必能达到转载 2006-02-09 21:44:00 · 1152 阅读 · 1 评论 -
声明函数指针并实现回调
[转载] 声明函数指针并实现回调 作者:赵湘宁发表:2004-3-23 12:13:51 出处:你的博客网(yourblog.org)程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。声明函数指针 回调函数是一个程序员不能显式调用的函数;通过将回转载 2006-02-09 21:42:00 · 977 阅读 · 0 评论 -
c语言中static 用法总结
一、c程序存储空间布局C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要转载 2008-01-31 17:22:00 · 1079 阅读 · 0 评论