C/C++
jianchi88
这个作者很懒,什么都没留下…
展开
-
嵌入式面试题3(转帖)
1.static变量和static 函数各有什么特点? static变量分两种,局部变量和全局变量,他们都放在全局数据区(我觉得表达不准确。全局静态变量本文件可见,局部静态变量在在定义的block内可见;static函数也放在全局数据区,外部文件不可见;转载 2011-09-27 16:50:37 · 1318 阅读 · 1 评论 -
如何计算结构体的大小——摘自华清远见嵌入式园地
如何计算结构体的大小 作者:曾宏安,华清远见嵌入式学院高级讲师。 运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。C语言中的构造数据类型有三种:数组、结构体和共用体。数组是相同类型的元素的集合,只要会计算转载 2011-11-17 16:04:27 · 3231 阅读 · 0 评论 -
c++函数参数类型-引用
在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数。这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身。例如:void changeVar(int myVar,int newValue){ myVar=newValue;}int main(){int myNum=20;原创 2011-09-30 12:50:39 · 14201 阅读 · 6 评论 -
C语言编译过程
C语言是一种高级语言,并且是编译型的语言。即一个用C写出来的源文件形式的代码,是可以被我们读懂的,但是如果想让机器也能读懂认识,就必须被转换为能够被机器认识的格式--机器语言指令。而完成这个转换工作的,就是C编译器。编译的过程如下。1. 预处理阶段预处理器查找源文件中以‘#’开始的行,并以实际的代码替换掉这些以‘#’开始的命令。比如,hello.c中假设第一行为 #原创 2011-10-11 12:26:53 · 788 阅读 · 0 评论 -
笔试常考:C语言字节对齐
先看金山C++的一道笔试题1. 以下程序代码的输出结果是:( )#pragma pack(1)typedef struct {char a:4;short b:4;char c:4;} A;cout A 2 B 3 C 4 D 6 答案是2 再回顾一下字节对齐知识点一、什么是对齐,以及为什么要对齐:1.原创 2011-11-12 13:03:54 · 801 阅读 · 0 评论 -
嵌入式数据库--SQLite简单应用(二)--移植到开发板
1,设置好交叉编译环境(这里不讲了)2,进入sqlite3目录 ./configure --host=arm-linux --disable-tclmake3,进入.libs/拷贝libsqlite3.a sqlite3.h 到sqlite工程目录4,修改Makefile all: arm-linux-gcc -o sqlite sqlite.c原创 2011-12-05 16:26:55 · 2117 阅读 · 1 评论 -
GNU-ARM程序开发(一)----GNU开发环境和工具
什么是GNUGNU计划,又称革奴计划。是由Richard Stallman在1983年9月27日公开发起的。目标是创建一套完全免费、自由的操作系统,基本原则是源代码共享及思想共享。所有在GNU计划下开发的软件均为GNU软件。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(G原创 2011-12-08 12:42:14 · 7673 阅读 · 0 评论 -
字符串分割处理,strstr函数应用
任务:把"123.wmv\n456.wmv\n789.wmv\nmv.wmv"这串字符串分割成一系列*.wmv输出#include #include int main(){ char *List[100]; char spath[60]="123.wmv\n456.wmv\n789.wmv\nmv.wmv"; char *ps = spath;原创 2011-12-05 09:20:41 · 2078 阅读 · 0 评论 -
几个笔试必备string函数(已经调过)
char *mystrchr(char *src, int letter){ assert(src != NULL); while((*src != letter)&&(*src)) src++; if(*src=='\0') return NULL; return (src);}char *mystr原创 2012-02-07 15:05:14 · 1803 阅读 · 0 评论 -
malloc/free与new/delete的区别
相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能转载 2012-02-07 14:58:10 · 1905 阅读 · 0 评论 -
变量的存储深入
变量值的存储变量被定义以后,系统在运行时会为该变量分配一个相应大小的存储空间,称为存储单元。给变量赋值后,该变量对应的存储单元中会存放该值,这个值称为变量的值。那么变量的值在变量的存储单元中是如何表示的呢?(1)整数是以补码的形式存放的。(正数的补码是其本身,原创 2011-10-19 15:40:45 · 1131 阅读 · 0 评论 -
char a[] = "hello world1"和char *p = "hello world2";的区别
1 #include 2 3 int main() 4 { 5 char a[] = "hello world1"; 6 char *p = "hello world2"; 7原创 2011-10-15 17:26:16 · 3332 阅读 · 1 评论 -
二维数组的指针变量笔记
二维数组的指针变量------指向二维数组元素的指针变量int main(){ static int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a[0];p<a[原创 2011-10-15 08:51:44 · 1403 阅读 · 0 评论 -
嵌入式面试2(转帖)
1> 如何判断一个板子的cpu 是big-endian 还是 Little-endian的?用c实现非常简单,10行左右,就可以判断了, 关键考察新人是否了解了什么是endian ,big-endian与little-endian的区别在哪里, 如果这些不清楚,就算c再强,也转载 2011-09-27 16:36:36 · 659 阅读 · 0 评论 -
嵌入式面试题5
2007-02-07Embedded Software Design Engineer1 读程序段,回答问题int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf("d=%d\n转载 2011-09-27 17:02:34 · 711 阅读 · 0 评论 -
c语言中static的用法
一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(b原创 2011-09-24 14:09:20 · 816 阅读 · 0 评论 -
嵌入式面试1(转帖)
嵌入式面试题1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情: 1). #define转载 2011-09-27 13:03:17 · 764 阅读 · 1 评论 -
函数指针与指针函数练习
#includeint add(int a, int b){ return a+b;}int sub(int a, int b){ return a-b;}/*参数是函数指针的函数*/int f1(int原创 2011-10-12 09:10:02 · 769 阅读 · 0 评论 -
指针数组和数组指针的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4原创 2011-10-12 09:05:29 · 1225 阅读 · 0 评论 -
解剖关键字typedef
带你解剖typedef之前,让我们先来看看POSIX.1中对信号处理函数signal的原型说明:void (*signal(int sig, void (*func)(int)))(int);(说明:这是一个函数,名字叫signal,它的输入参数是“int sig转载 2011-09-30 08:52:53 · 584 阅读 · 0 评论 -
sizeof与strlen的区别与联系
sizeof与strlen的区别与联系1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof转载 2011-09-30 15:44:57 · 787 阅读 · 0 评论 -
指针乱指笔记
#includeint main(){ int a = 0x12345678; char *pc = &a; printf("%x",*pc); char c = 'a';原创 2011-10-12 17:02:05 · 1569 阅读 · 0 评论 -
可重入函数与不可重入函数
某日,笔试这个概念,果断悲剧了。主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。也可以这样理解,重入即表示重复进入,首转载 2012-06-16 13:09:05 · 1570 阅读 · 0 评论