C基础
isstack
靡不有初,鲜克有终
展开
-
嵌入式从业者应注意的问题
C语言测试:想成为嵌入式程序员应知道的0x10个基本问题 C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不转载 2017-08-25 17:09:11 · 305 阅读 · 0 评论 -
浅析data、text、bss段
一般情况,一个程序本质上都是由 bss段、data段、text段三个段组成——这是计算机程序设计中重要的基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。 在采用段式内存管理的架构中(比如intel的80x86系统),bss段(Block Started by Symbol segment)通常是指用来存放程序中未初始化的全局变转载 2017-10-04 20:45:28 · 521 阅读 · 0 评论 -
C语言内联函数inline
一、什么是内联函数 在C语言中,如果一些函数被频繁调用,不断地有函数入栈,即函数栈,会造成栈空间或栈内存的大量消耗。 为了解决这个问题,特别的引入了inline修饰符,表示为内联函数。 栈空间就是指放置程式的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足所造成的程式出错的问题,函数的死转载 2017-10-09 23:28:12 · 341 阅读 · 0 评论 -
C语言main函数
c语言中main函数是可以带参数的,平时写倒是没怎么用这个参数,学习了一下这个参数。 C语言规定了main函数只能有两个参数,并且其类型也规定了,习惯上把他们写成: main(int argc , char *argv[]) 第一个参数是整形,第二个参数是指向字符串的指针数组,为什么这么定义?有什么用?C语言还规定了程序的执行是从main函数开始的,这和操作系统有关,因为平时我们开发是原创 2017-09-19 13:33:16 · 631 阅读 · 0 评论 -
scanf、getchar、gets
C语言中基本输入主要有三个函数:scanf、getchar、gets。 首先他们的输入都是基于缓冲区的,字符被放入缓冲区,然后输入函数去取,取的时候就有区别了,关键是对空格和回车符的处理不大一样。 int main(){ char a,b; scanf("%c",&a); scanf("%c",&b); printf("%d %d",a,b);原创 2017-09-25 23:52:03 · 369 阅读 · 0 评论 -
输入输出流概念
转自:http://blog.csdn.net/zqixiao_09/article/details/50234733学习标准输入输出,我们都会遇到一个概念,流和缓冲区,但到底什么是流,什么是缓冲区呢? 书《C Primer Plus》上说,C程序处理一个流而不是直接处理文件。后面的解释十分抽象:『流(stream)是一个理想化的数据流,实际输入或转载 2017-09-19 12:21:20 · 2353 阅读 · 1 评论 -
C结构体的位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位转载 2017-09-27 00:20:54 · 210 阅读 · 0 评论 -
C运算符优先级
C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右--()圆括号(表达式)/函数名(形参表)--.成员原创 2017-09-25 21:18:09 · 143 阅读 · 0 评论 -
三种字符串逆序
第一种添加一个字符数组:#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i; int n; char *q = "I am a coder"; n = strlen(q); char buffer[n+1];//多一个位置放原创 2017-09-16 10:24:51 · 273 阅读 · 0 评论 -
C/C++常见面试题
这些题目都收集于网上,只是整理起来方便学习。简述C、C++程序编译的内存分配情况 C、C++中内存分配方式可以分为三种: (1)从静态存储区域分配: 内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。 (2)在栈上分配: 在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自原创 2017-09-16 17:45:17 · 342 阅读 · 0 评论 -
C函数使用笔记
一些C函数使用笔记void * memset(void * ptr, int value , size_t num); 从ptr所指的地址开始,填充一块长度为num、内容为value的数据。 Sets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as原创 2017-08-22 11:08:17 · 216 阅读 · 0 评论 -
C语言内存管理和参数传递浅析
看了一些大佬对C语言细节的分析,觉得自己的C真是白学了,从新开始记录C语言的学习。 首先看一个例子:(内存管理)char *getmemery() { char p[] = "hello world!"; return p; } main() { char *str = NULL; str = getmemery(); pr原创 2017-09-16 00:48:28 · 339 阅读 · 0 评论 -
嵌入式高效编程小技巧
C语言高效编程技巧 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。 第1招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。 例如:字符串的赋值。 方法A,通常的办法:转载 2017-08-25 17:12:12 · 391 阅读 · 0 评论 -
c/c++头文件
C/C++头文件一览C#include <assert.h> //设定插入点#include <ctype.h> //字符处理#include <errno.h> //定义错误码#include <float.h> //浮点数处理#include <iso646.h> //对应各种运...转载 2019-04-01 15:39:47 · 215 阅读 · 0 评论