C语言
fuyunliushuizjf
这个作者很懒,什么都没留下…
展开
-
关于static函数能不能在其他文件中使用的问题
关于static函数能不能在其他文件中使用的问题转载▼首先要肯定的是static函数是不能被其他文件直接调用的 但是我们为回答面试官的问题 可以用间接的方式1. 通过函数指针的方式, 我们只要得到这个函数的地址,那么就一定可以调用它,大家要知道static函数是对编译器起作用的,在运行时根本没有static了,有的只是函数地址,所以只要搞到函数地址管它是不是sta转载 2014-12-15 15:05:24 · 11670 阅读 · 2 评论 -
内联函数:static inline 和 extern inline 的含义
内联函数:static inline 和 extern inline 的含义前置简短概述引入内联函数的目的是为了解决程序中函数调用的效率问题。 函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能和使用方法,而不必关心函数功能的具体实现;函数的引入可以减少程序的目标代码,实现程序代码和数据的共享。但是,函数调用也会带来降低效率的问题,因为调用函数实际上将程序执行顺序转移到转载 2014-12-15 15:37:10 · 411 阅读 · 0 评论 -
typedef void (*funcptr)(void
typedef void (*funcptr)(void) 定义一个函数指针类型。比如你有三个函数:void hello(void) { printf("你好!"); }void bye(void) { printf("再见!"); }void ok(void) { printf("好的!"); }转载 2014-12-01 10:19:05 · 367 阅读 · 0 评论 -
#undef
#undef #undef 是在后面取消以前定义的宏定义 该指令的形式为 #undef 标识符 其中,标识符是一个宏名称。如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令。 一旦定义预处理器标识符,它将保持已定义状态且在作用域内,直到程序结束或者使用#undef 指令取消定义。 在此程序中,我们将取消在转载 2015-01-27 17:54:38 · 412 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
Sizeof与Strlen的区别与联系一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof转载 2014-12-08 11:53:02 · 263 阅读 · 0 评论 -
RS232与RS485的功能与区别!
RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。DB25的串口一般只用到的管脚只有2(RXD)、3(TXD)、转载 2014-12-08 12:18:42 · 375 阅读 · 0 评论 -
pragma pack(非常有用的字节对齐用法说明)
http://hi.baidu.com/zhanghuikl/blog/item/124ea7998108a9006e068c19.html 强调一点:#pragma pack(4)typedef struct{ char buf[3]; word a;}kk;#pragma pack()对齐的原则是min转载 2015-02-03 11:32:36 · 1184 阅读 · 0 评论 -
static作用(修饰函数、局部变量、全局变量)
static作用(修饰函数、局部变量、全局变量)在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a转载 2014-12-10 22:31:19 · 371 阅读 · 0 评论 -
可重入函数与不可重入函数
可重入函数与不可重入函数 2011-05-12 10:34:51| 分类: 操作系统|字号 订阅主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被转载 2015-12-27 18:08:17 · 323 阅读 · 0 评论 -
原码, 反码, 补码 详解
原码, 反码, 补码 详解本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.转载 2014-12-16 09:25:56 · 265 阅读 · 0 评论 -
ARM中C和汇编混合编程及示例
在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括CPU状态的设定,中断的使能,主频的设定,以及RAM的控制参数及初始化,一些中断处理方面也可转载 2014-10-22 10:43:55 · 530 阅读 · 0 评论 -
外部中断的使用~~
STM32学习笔记(2):外部中断的使用2011年3月20日 外部中断中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。1 基本概念ARM Coetex-M3内核转载 2014-06-05 15:20:48 · 936 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需转载 2014-08-20 12:25:15 · 323 阅读 · 0 评论 -
printf函数
Printf()输出格式控制 (2010-09-03 18:47:12)转载▼标签: 杂谈分类: 学习转载 int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F转载 2014-09-01 14:58:43 · 448 阅读 · 0 评论 -
代码是如何控制硬件的
比如说在单片机中,你写 0,它输出低电平。invalid s既然楼主提到“低电平”,看来对数字电路是有一点了解的。那么,翻开数字电路相关教材,最前面几页。一般它都会告诉你,三极管/场效应管类似继电器(一种通过线圈产生磁场、然后用磁场控制物理开关的通断与否的设备);在它一个管脚上输入/切断电压信号,另一个管脚就会出现高/低电平。这东西,就是数字电路的基础。转载 2014-10-24 15:11:41 · 1651 阅读 · 0 评论 -
STM32之启动文件理解
STM32之启动文件理解 2012-01-03 20:00:19| 分类: STM32学习 | 标签:stm32 启动文件 |举报|字号 订阅原文地址:STM32之启动文件理解一作者:Roberl 在嵌入式应用程序开发过程里,由于使用C语言编程,基本很少涉及到机器底层寄存器的执行过程,一般都会直接在main函数里开始写代码,似乎ma转载 2014-10-26 12:00:26 · 610 阅读 · 0 评论 -
C语言中的整数自动转换原则
C语言中的整数自动转换原则 (2012-11-28 11:11:32)转载▼分类: 程序员面试原帖地址:http://blog.csdn.net/zhuimengzh/article/details/67284921、隐式转换 C在以下四种情况下会进行隐式转换: 1、算术运算式中,低类型能够转换为高类型。 2、赋值表达式中,右边表达式的值自转载 2014-10-08 16:23:13 · 616 阅读 · 0 评论 -
C语言中的宏定义
C语言中的宏定义 目录(?)[-]简单宏定义带参数的宏运算符运算符宏的通用属性宏定义中圆括号创建较长的宏较长的宏中的逗号运算符宏定义中的do-while循环do 空操作的定义预定义宏C语言中常转载 2014-10-09 09:28:45 · 673 阅读 · 0 评论 -
NULL, '\0',0 '0'的区别
NULL, '\0',0 '0'的区别分类: c c++2011-10-14 14:11 3453人阅读 评论(1) 收藏 举报null编译器cfloat存储如题,在程序中经常遇到NULL,和'\0',常常疑惑它们是什么关系,其实它们的值是一样的,只不过表现的形式不一样: 1、NULL; NULL 即空指针,在C和C++中的形式不一样,msdn上有如下的转载 2014-10-11 12:19:25 · 299 阅读 · 0 评论 -
枚举
一般的定义方式如下:enum enum_type_name { ENUM_CONST_1, ENUM_CONST_2, ... ENUM_CONST_n } enum_variable_name; 注意:enum_type_name 是自定义的一种数据数据类型名,而enum_variable_name 为 enum_type_name类型的一个变量,也就是我们平时常说的枚举变量。实转载 2014-11-18 12:19:39 · 318 阅读 · 0 评论 -
printf()函数
printf()printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf("", );其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出;另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表转载 2014-08-22 18:05:14 · 482 阅读 · 0 评论