
C语言
文章平均质量分 72
当今明月
嵌入式研发
展开
-
C语言中各种整型变量在不同字长机器上的字节数详细探讨
今天,看到一个特别基础的问题探讨,但是认识比较深入,感觉文章比较好,转载至此 文末附上原文链接突然间就想到了long和int到底什么区别(发现有很多问题都是突然间想到的),然后百度、google各种查找,各种书籍:《C++ Primer》、《C程序设计语言》查看,终于明白了一些。下面的话选自《C程序设计语言》:short与long两个限定符的引入可以为我们提供满足实际需要的不同转载 2016-03-09 10:25:56 · 1675 阅读 · 0 评论 -
Keil MDK中的Code, RO-data , RW-data, ZI-data分别代表什么意思?(转)
一 基础知识字节 8位半字 16位字 32位 二 解惑Code, RO-data,RW-data,ZI-dataCode为程序代码部分RO-data 表示 程序定义的常量const temp;RW-data 表示 已初始化的全局变量ZI-data 表示 未初始化的全局变量Program Size: Code="18248转载 2017-11-01 15:28:01 · 1503 阅读 · 0 评论 -
KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释
原文链接:http://blog.youkuaiyun.com/gasbi/article/details/6186312KEIL RVMDK编译后的信息 Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,转载 2017-11-01 15:33:00 · 272 阅读 · 0 评论 -
typedef函数指针用法
原文链接:http://blog.youkuaiyun.com/qll125596718/article/details/68918811.简单的函数指针的应用形式1:返回类型(*函数名)(参数表) [cpp] view plain copychar (*pFun)(int); char glFun(int a){ retur转载 2017-10-25 14:26:40 · 182 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所转载 2017-10-26 10:42:51 · 147 阅读 · 0 评论 -
malloc、calloc、realloc和alloca各种的区别
原文链接:http://blog.sina.com.cn/s/blog_60cf05130101eonp.html需要先包含头文件#include"malloc.h"malloc是标准的在堆中开辟新的空间比如char *pt=(char *)malloc(10*sizeof(char));需要free(p)才会释放空间calloc也是转载 2017-11-04 18:03:51 · 531 阅读 · 0 评论 -
c语言内存函数malloc、calloc、realloc、alloca比较
原文链接:http://blog.youkuaiyun.com/fish43237/article/details/42632305功能上的区别:(1)malloc 申请指定字节数的内存。申请到的内存中的初始值不确定。(2)calloc为指定长度的对象,分配能容纳其指定个数的内存。申请到的内存的每一位(bit)都初始化为0(3)realloc 更改以前分转载 2017-11-04 19:12:30 · 310 阅读 · 0 评论 -
__VA_ARGS__用法(转)
原文链接:http://blog.chinaunix.net/uid-22878837-id-2110544.html自定义调试信息的输出 调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等... 使用标准转载 2017-11-05 01:14:42 · 710 阅读 · 0 评论 -
C语言 ## __VA_ARGS__ 宏
原文链接:http://www.cnblogs.com/alexshi/archive/2012/03/09/2388453.html在GNU C中,宏可以接受可变数目的参数,就象函数一样,例如: #define pr_debug(fmt,arg...) \ printk(KERN_DEBUG fmt, ##arg) 用可变参数宏(variadic macros)传递转载 2017-11-05 01:16:05 · 714 阅读 · 0 评论 -
va_start和va_end使用详解
原文链接:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.htmlva_start和va_end使用详解 本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它转载 2017-11-05 01:17:13 · 687 阅读 · 0 评论 -
const 为形参的问题
问答原贴连接:http://www.openedv.com/posts/list/7105.htm最近在移植FATFS到STM32上出现了一个问题:DRESULT disk_write ( BYTE drv, /* Physical drive nmuber (0..) */ const BYTE *bu转载 2017-11-01 15:09:41 · 1447 阅读 · 0 评论 -
const static 与static const的使用
查看文章 C++ static、const和static const 以及它们的初始化2010-03-29 15:30C++ static、const和static const 以及它们的初始化(2010-02-16 17:27:47)转载标签:cstaticconst转载 2017-11-01 14:00:36 · 2490 阅读 · 0 评论 -
函数名、变量前后的_(一个下划线)、__(两个下划线)分别有什么用
原文链接:http://blog.sina.com.cn/s/blog_a4cdf3050101a4ky.htmlhttp://topic.youkuaiyun.com/t/20010605/10/146508.html#http://mxdxm.javaeye.com/blog/510486__FILE__,__LINE__ 都是与定义的宏,使用_ 和 __ 开始的函数一转载 2016-12-14 15:33:50 · 22095 阅读 · 1 评论 -
linux下gcc默认搜索头文件及库文件的路径
linux下gcc默认搜索头文件及库文件的路径原文链接:http://blog.youkuaiyun.com/fd315063004/article/details/7925854一、头文件gcc 在编译时如何去寻找所需要的头文件:※所以header file的搜寻会从-I开始※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INC转载 2016-12-14 15:44:59 · 464 阅读 · 0 评论 -
结构对齐--__packed与#pragma pack
1 ANSI C规定 ANSI C规定一种结构类型的大小是它所有字段的大小以及字段之间或字段尾部的填充区大小之和。 填充区就是为了使结构体字段满足内存对齐要求而额外分配给结构体的空间。 那么结构体本身有对齐要求,ANSI C标准规定结构体类型的对齐要求不能比它所有字段中要求最严格的那个宽松,可以更严格。 2 WIN32和Linux平转载 2017-06-19 16:15:31 · 839 阅读 · 0 评论 -
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了
原文链接:http://blog.youkuaiyun.com/kiddy19850221/article/details/6655066uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等。咋一看,好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这转载 2017-07-15 16:33:37 · 677 阅读 · 0 评论 -
单片机生成随机数的方法总结
去年冬天在帮学校附近一家密室逃脱店做一些电子机关,其中一个打地鼠项目需要用到单片机产生随机数,用于实现随机让几个地鼠“钻”出来。一开始想法很单纯,不就是随机函数么,之前C语言课上就学过啦。可是真正用这个方法做了之后却发现并没有想象之中那么简单,程序像是写死的,复位后每次的顺序都是固定的,并没有随机的效果,于是我仔细研究了一下,总结了单片机生成随机数的几种常见方法。 首先,要明确一点:一转载 2017-07-16 20:22:27 · 2451 阅读 · 0 评论 -
才搞清楚常量的存储位置
原文链接:http://blog.youkuaiyun.com/taoqilin/article/details/52401679一个形如42的值被称为字面值常量。字面值常量的形式和值决定了常量的类型。例如0x42是16进制表示的整型常量。‘a'是char型字面值。字面值常量顾名思义由字面意思表示,是常量。字面值常量在程序中是直接表示的,整型直接写出大小,字符直接写出字符。一个字面值常量在编译时被转载 2017-10-30 10:56:34 · 2951 阅读 · 0 评论 -
FLASH和EEPROM的最大区别
FLASH和EEPROM的最大区别FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“转载 2017-10-30 11:49:25 · 4323 阅读 · 0 评论 -
#pragma once与 #ifndef的区别
原文地址::http://www.cppblog.com/szhoftuncun/archive/2007/10/28/35356.html类似文章地址::http://www.cnblogs.com/hokyhu/archive/2009/03/30/1425604.html为了避免同一个文件被include多次1 #ifndef方式2 #pragma onc转载 2017-10-13 14:34:48 · 779 阅读 · 0 评论 -
C语言中Static和Const关键字的的作用
static作用:“改变生命周期” 或者 “改变作用域” 程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。1.作用于变量: 用static声明局部变量-------局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态存储的,即指令执行到变量定义处时才给变量分配存储单元,跳出转载 2017-11-01 13:59:06 · 434 阅读 · 0 评论 -
C语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义
原文链接:http://blog.youkuaiyun.com/edonlii/article/details/8497704C语言可变参简介 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数fo转载 2017-11-05 01:18:09 · 429 阅读 · 0 评论