
c/c++
文章平均质量分 88
xiaozhi_su
我回来了,业余时间学习和研究Android......
展开
-
c语言编程规范
头文件的结构原创 2009-03-21 11:06:00 · 673 阅读 · 0 评论 -
计算机存储体系结构
一、引子在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:big-edian和little-endian。本文简要描述这两种存储机制的来原创 2009-04-25 20:13:00 · 2495 阅读 · 0 评论 -
fflush 的一些用法
1.为什么 fflush(stdin) 是错的首先请看以下程序:#include int main( void ){ int i; for (;;) { fputs("Please input an integer: ", stdout); scanf("%d", &i); printf("%d/n", i); } return原创 2009-04-24 09:04:00 · 1182 阅读 · 0 评论 -
浅析 c++ 纯虚函数
一、定义. 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加"=0"virtual void funtion1()=0二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象原创 2009-04-26 15:37:00 · 8288 阅读 · 5 评论 -
C语言编译全过程
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1. 编译预处理读取c源原创 2009-04-25 20:12:00 · 962 阅读 · 0 评论 -
指针和引用的区别
(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用指针. 由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. String & rs = string1; 由于没有所谓的 null reference 所以所以在使用前不需要进行测试其是否有值.,而使用指针则需要测试其的有效性原创 2009-04-24 20:42:00 · 626 阅读 · 0 评论 -
exit()与_exit()在linux进程控制中的区别
linux进程控制-exit()#includevoid exit(int status);不像fork那么难理解,从exit的名字就能看出,这个系统调用是用来终止一个进程的。无论在程序中的什么位置,只要执行到exit系统调用,进程就会停止剩下的所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。请看下面的程序:/* exit_test1.c */#includemain(转载 2009-05-10 12:43:00 · 1890 阅读 · 0 评论 -
C语言中关键字extern的作用
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组: char a[6]; 在另外一个文件里用下列语句进行了声明: extern ch转载 2009-05-09 13:56:00 · 23541 阅读 · 2 评论 -
pragma指令简介
pragma指令简介在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。一.message参数message它能够在编译消息输出窗口中输出相应的消息,这对于源代码信息的控制非常重要的,使用方法为:#pragma message(“消息文本”)当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。当我们在程序中定义了转载 2009-05-14 17:06:00 · 661 阅读 · 0 评论 -
嵌入式C开发人员的最好的0x10道笔试题
约定: 1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了 2)数据类型 char 一个字节 1 byte int 两个字节 2 byte (16位系统,认为整型是2个字节) long int 四个字节 4 byte float 四个字节4 byet double 八个字节 8 byt转载 2009-04-24 20:40:00 · 1219 阅读 · 0 评论 -
想成为嵌入式程序员应知道的0x10个基本问题
预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年转载 2009-04-24 20:36:00 · 569 阅读 · 0 评论 -
内存对齐
转自:也谈内存对齐 - [技术前沿] 明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/1347304.html在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序转载 2009-04-24 08:58:00 · 496 阅读 · 0 评论 -
c 语言指针的识别
C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的: The right-left rule: Start转载 2009-03-21 11:23:00 · 816 阅读 · 0 评论 -
栈、链、队列操作的 c代码
栈操作//进栈算法#include "stdio.h"#define stacksize 100 /*定义stacksize为常数100 */ int push(int s[],int x,int *ptop){原创 2009-03-21 11:26:00 · 1617 阅读 · 0 评论 -
lrc 歌词解析项目
lrc 歌词解析项目步骤:0、先上网查找lrc歌词的格式,链接http://baike.baidu.com/view/80650.htm ,分析歌词格式1、下载歌词文件2、将歌词文件内容 通过 fread 全部读到一个数组中,并在屏幕上打印出来,验证试验结果。3、判断 歌曲的歌名与演唱者,并打原创 2009-03-21 11:28:00 · 2716 阅读 · 2 评论 -
三天学会C++
●派生类的声明一般格式:class 派生类名:派生方式 基类名{//派生类新增的数据成员和成员函数};如:class employee:public person{ char department[20]; float salary;public://…};●派生方式公有派生class原创 2009-04-22 19:57:00 · 1205 阅读 · 0 评论 -
三天学会C++
三天学会C++ 之一 ●对象与类的概念 对象是现实世界中的一个实体,其特征是:1、每一个对象必须有一个名字以区别于其它对象;2、用属性(或叫状态)来描述它的某些特征;3、有一组操作,每一个操作决定对象的一种行为。类的精确定义:具有共性的实体的抽象,类是创建对象原创 2009-04-22 17:34:00 · 1574 阅读 · 0 评论 -
三天学会C++
三天学会c++ 之二结构与类 结构与类的主要区别是:默认访问级别不同,结构默认是public,类默认是private。C++中的结构: 可以看作是用struct关健字创建的类C++中,结构的成员(数据和函数)通常分两类:私有成员:private,它只能被原创 2009-04-22 18:37:00 · 1420 阅读 · 0 评论 -
C函数调用机制
3.4 C与汇编程序的相互调用为了提高代码执行效率,内核源代码中有的地方直接使用了汇编语言编制。这就会涉及在两种语言编制的程序之间的相互调用问题。本节首先说明C语言函数的调用机制,然后举例说明两者函数之间的调用方法。3.4.1 C函数调用机制在Linux内核程序boot/head.s执行完基本初始化操作之后,就会跳转去执行init/main.c程序。那么head.s程序是如何转载 2009-04-23 19:34:00 · 2990 阅读 · 2 评论 -
常见的内存错误及其对策
内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,原创 2009-04-24 08:52:00 · 690 阅读 · 0 评论 -
GCC编译c程序的工作过程
在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它转载 2009-05-14 17:03:00 · 3405 阅读 · 1 评论