自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

血染风采2019

每一个优秀的人,都有一段沉默的时光。那一段时光,是付出了很多努力,忍受了很多的孤独和寂寞,不抱怨不诉苦,只有自己知道。而当日后说起时,连自己都能被感动的日子。

  • 博客(53)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

原创 每日一题(53)—— 评价代码片段

评价下面代码片段:unsigned int zero = 0; unsigned int compzero = 0xFFFF; /*1's complement of zero */ 对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下: unsigned int compzero= ~0;     这一问题

2017-08-23 13:53:30 1529

原创 每日一题(52)—— 进程

列举几种进程的同步机制:1)原子操作2)信号量机制3)自旋锁 4)管程,会合,分布式系统网络编程中设计并发服务器,使用多进程与 多线程 ,请问有什么区别?1) 进程:子进程是父进程的复制,它获得父进程数据空间,堆栈的复制品。2) 线程:相对于进程而言,线程更接近于一个执行体的概念,它可以与同进程的其他线程同享进程资源,但同时拥有自己的栈空间,寄存器,

2017-08-23 13:53:11 705

原创 每日一题(51)—— 大小端判断

请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1。int checkCPU(){ {  union w  {    int a;   char b;  } c;  c.a = 1;  return (c.b == 1); }}分析:嵌入式系统开发者应该对Little

2017-08-23 13:52:53 803

原创 每日一题(50)—— 各类型与零值的比较

分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)解答:   BOOL型变量:if(!var)   int型变量: if(var==0)   float型变量:   const float EPSINON =0.00001;   if ((x >= -

2017-08-23 13:52:33 649

原创 每日一题(49)—— 有符号数与无符号数

void foo(void){ unsigned int a = 6; int b = -20; (a + b> 6)?(">6"):("<6");}上面代码输出是什么,为什么?答案是“>6”原因是当操作数中有符号类型和无符号类型进行运算时所有的操作数都自动转换成无符号数。

2017-08-23 13:52:01 791

原创 每日一题(48)—— 中断

中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。__interrupt double compute_area(double radius){ double area = pi*radi

2017-08-23 13:51:39 993

原创 每日一题(47)—— 置1与清0

嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。置1用|,清0用&#define BIT3 (0x01<<3)static int a;void set_bit3(void){ a|=BIT3;}void clear_bit3(

2017-08-23 13:51:19 1512

原创 每日一题(46)—— volatile

1.一个变量可以既是const 还是volatile吗?解释为什么?可以,例如状态寄存器。它首先应该是volatile 因为它可以出乎意料的修改,而且应该是const,这个寄存器程序不应该去修改。2.一个指针可以说volatile的吗?可以,例如中断服务子程序中修改一个指向buffer的指针。3.下列代码有错误吗?Int square(volatile int *ptr){

2017-08-23 13:50:42 676

原创 每日一题(45)—— 字符数组找错

void test2(){ char str1[10], str2[10]; int i; for(i=0; i<10; i++) str1[i] = 'a'; strcpy( str2, str1 );}这段代码有什么问题?解答:如果面试者指出字符数组str1不能在数组内结束可以给3分;如果

2017-08-23 08:22:40 785

原创 每日一题(44)—— 请列举一个软件中时间换空间或者空间换时间的例子

请列举一个软件中时间换空间或者空间换时间的例子:--->时优void swap(int a,int b){ int c; c=a; a=b; b=c;}--->空优void swap(int a,int b){ a=a+b; b=a-b; a=a-b;}

2017-08-23 08:22:02 2890 1

原创 每日一题(43)—— 数组越界

下面这个程序执行后会有什么错误或者效果:#define  MAX  255int main(){ unsigned char A[MAX],i; for (i=0;i<=MAX;i++) { A[i]=i; }}解答:死循环加数组越界访问(C/C++不进行数组越界检查)MAX=2

2017-08-22 08:28:26 554

原创 每日一题(42)—— 已知一个数组table,用一个宏定义,求出数据的元素个数

已知一个数组table,用一个宏定义,求出数据的元素个数。// 总大小除以第一个元素的大小#define NTBL (sizeof(table)/sizeof(table[0]))

2017-08-22 08:28:08 7832 1

原创 每日一题(41)—— 数组和链表的区别

数组和链表的区别:数组:数据顺序存储,固定大小连表:数据可以随机存储,大小可动态改变

2017-08-21 09:06:44 414

原创 每日一题(40)—— 字符串常量

下列代码有什么问题?char* s="AAA";printf("%s",s);s[0]='B';printf("%s",s);"AAA"是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。cosntchar* s="AAA";然后又因为是常量,所以对是s[0]的赋值操作是不合法的。

2017-08-21 09:06:27 624

原创 每日一题(39)—— sizeof

以下代码中的两个sizeof用法有问题吗?void UpperCase(char str[]){ for(size_t i = 0; i < sizeof(str); ++i) { str[i] -= ('a' - 'A'); }}char str[] = "aBcDe";cout << "str字符长度为: " << sizeof(str

2017-08-20 16:39:11 590

原创 每日一题(38)—— 一个32位的机器,该机器的指针是多少位?

一个32位的机器,该机器的指针是多少位?指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节了。

2017-08-20 16:38:48 3059

原创 每日一题(37)—— 常量存储区

char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char *str5 = "abc";const char *str6 = "abc";char *str7 = "abc";char *str8 = "abc";cout <<

2017-08-18 08:31:55 569

原创 每日一题(36)—— 什么是预编译 , 何时需要预编译?

什么是预编译 , 何时需要预编译?1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

2017-08-18 08:31:12 1074

原创 每日一题(35)—— heap与stack的差别

heap与stack的差别:Heap是堆,stack是栈。Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在

2017-08-17 08:28:15 626

原创 每日一题(34)—— 线程

1.线程的概念:2  与进程的区别:3 线程与进程的区别和联系? 线程是否具有相同的堆栈?1、线程是指进程内的一个执行单元,也是进程内的可调度实体.2、与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进

2017-08-17 08:27:52 528

原创 每日一题(33)——用两个栈实现一个队列的功能?要求给出算法和思路

用两个栈实现一个队列的功能?要求给出算法和思路。设2个栈为A,B, 一开始均为空.入队:将新元素push入栈A;出队:(1)判断栈B是否为空;(2)如果不为空,则将栈B中最顶元素pop出;如果为空,则将A中所有元素POP出并PUSH到B中,这后POP出最顶元素,A则下移一单位。

2017-08-16 08:33:51 3384

原创 每日一题(32)—— 联合体大小

设有以下说明和定义:typedef union{ long i; int k[5]; char c;} DATE;struct data{ int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(structdate)+sizeof(max));的执行结果是:

2017-08-16 08:33:02 583 1

原创 每日一题(31)—— 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?

全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

2017-08-15 08:35:55 2095 1

原创 每日一题(30)—— 局部变量能否和全局变量重名?

局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2017-08-15 08:35:17 766

原创 每日一题(29)—— 如何引用一个已经定义过的全局变量

如何引用一个已经定义过的全局变量?extern关键字可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

2017-08-14 08:27:52 2765

原创 每日一题(28)—— 引用与指针的区别

引用与指针有什么区别?(1)引用必须被初始化,指针不必;(2)引用初始化以后不能被改变,指针可以;(3)不存在指向空值的引用,但是存在指向空值的指针。NULL。

2017-08-14 08:27:05 496

原创 每日一题(27)—— define定义一个宏表明1年中有多少秒

用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)分析:1、#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2、懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3、意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整

2017-08-13 11:16:12 3344

原创 每日一题(26)—— 无限循环的几种形式

嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?1、while(1) { } —— 个人推荐使用 2、for(;;) { }  —— 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。3、goto Loop: ... goto Loop;  —— 应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是

2017-08-13 11:15:06 1145

原创 每日一题(25)—— 自加++

C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?int a = 5, b = 7, c; c = a+++b; 不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:

2017-08-12 09:21:29 427

原创 每日一题(24)—— const

关键字const的作用:1、const int a;2、int const a;3、const int *a;4、int * const a;5、const int const * a;

2017-08-12 09:20:28 473

原创 每日一题(23)——malloc与free(四)

void Test(void){ char *str = (char *)malloc(100); strcpy(str, "hello"); free(str); if(str != NULL) { strcpy(str, "world"); printf(str); }}1、指出编程错误2、指出错误后果3、指出纠正

2017-08-11 08:38:54 646

原创 每日一题(22)——malloc与free(三)

void GetMemory( char **p, int num ){ *p = ( char * )malloc( num );} void Test( void ){ char *str = NULL; GetMemory( &str, 100 ); strcpy( str, “hello world” ); printf( str );}

2017-08-11 08:38:22 420 1

原创 每日一题(21)——malloc与free(二)

char *GetMemory( void ){ char p[] = “hello world”; return p;} void Test( void ){ char *str = NULL; str = GetMemory(); printf( str );}1、指出编程错误2、指出错误后果3、指出纠正方法

2017-08-11 08:38:04 440 1

原创 每日一题(20)——malloc与free(一)

void GetMemory( char *p ){ p = ( char * )malloc( 100 );} void Test( void ){ char *str = NULL; GetMemory( str ); strcpy( str, “hello world” ); printf( str );}1、指出编程错误2、指出

2017-08-11 08:37:39 587

原创 每日一题(19)—— 用变量a给出下面的定义

变量的定义

2017-08-10 10:59:54 5878 2

原创 每日一题(18)—— 指定地址存入数据

往内存地址0x1c1b上存入一个数据0x10,使用指针如何操作,写出代码。

2017-08-10 10:59:23 681

原创 每日一题(17)—— 关键字volatile的作用和三个不同的应用场合

关键字volatile的作用和三个不同的应用场合作用:防止编译器优化;(1)并行设备的硬件寄存器(如状态寄存器);// #define S5PV210_GPIO_DATA (*(volatile unsigned char *)0x40000000)(2)中断服务子程序中会访问到的非自动变量;(3)多线程应用中被几个任务共享的变量等等。

2017-08-10 08:37:28 920

原创 每日一题(16)—— 声明和定义的区别

简述变量/函数声明和定义的区别:

2017-08-10 08:36:34 611

原创 每日一题(15)—— static有什么用途

static的用法:(简要回答就好)1、修饰全局变量:只在本文件有效,存储在全局区;2、修饰局部变量:只在本函数有效,存储在全局区;3、修饰函数:只在本文件有效。

2017-08-09 13:01:32 580

原创 每日一题(14)—— 交换a,b的值(不使用中间变量)

如何将a,b的值进行交换,并且不使用任何中间变量?推荐答案:a = a ^ b;b = a ^ b;a = a ^ b;分析:下面的答案不好,可能会导致越界的问题a = a + b; // 可能越界b = a - b;a = a - b;

2017-08-09 09:14:28 737

unix高级编程

这是一般unix环境高级编程的书,个人认为想学好Linux C高级编程,此书必看。

2015-07-09

linux下SVN服务器包

linux下搭建SVN服务器所用到的包。

2014-12-24

windows中的tftp软件

嵌入式系统开发多采用交叉开发模式,需要服务器。

2014-09-07

远程登录LINUX工具

远程登录linux工具。方便不同主机之间的远程连接。

2014-09-07

c语言学习笔记

以文档的形式描述了c语言50个代表性的问题,比如static的作用,const的用法,strlen和sizeof区别……很多你很容易弄错的知识,绝对是精品中的精品。

2014-08-08

c语言学习框架

c语言学习框架 从最基础的常量变量 顺序 选择 判断 函数 指针 字符串的操作等等

2014-08-08

linux文件操作之系统调用

linux文件操作之系统调用。开始介绍了系统调用和库函数的区别,其次介绍了各种常用系统调用,其格式:头文件+函数原型+参数解析+返回值+具体实例。文档最后含一段小代码:用系统函数实现文件拷贝功能。

2014-08-08

用c函数实现ls -l功能

linux下使用各种c函数实现ls -l的功能,主要使用stat函数确定文件的属性,具体内容见文档,里面含有各个模块的解释,最后附加啦整体的源代码,仅供参考学习。

2014-08-08

Linux九阳神功

里面包含了基本的linux资料,嵌入式学习的路线,vim的配置(非常详细),makefile万能模板——生成可执行文件的,生成静态库的,生成动态库的

2014-07-18

c项目——电子词典

主要是对c语言的巩固, 【考察知识点】 (1)变量数据类型 (2)数组 (3)结构体 (4)typedef关键字的使用 (5)控制结构 (6)函数接口设计 (7)static关键字的使用 (8)文件拆分与代码组织 (9)模块化设计思想 (10)简单的面向对象程序设计思想

2014-07-09

PCB元件库及元件库封装

PCB元件库。。元件库的封装及PCB原理图文件和PCB文件。

2013-05-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除