随笔分类 -  C/C++

摘要:写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char boolean; /* Boolean value type. */typedef unsigned long int uint32; /* Unsigned 32 bit value */typedef unsi 阅读全文
posted @ 2011-11-21 10:32 pulan 阅读(262) 评论(0) 推荐(0) 编辑
摘要:预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任 阅读全文
posted @ 2011-11-14 15:52 pulan 阅读(383) 评论(0) 推荐(0) 编辑
摘要:C Primer Plus 讲的很细,而且也有很多编程规则方面的提示,这个比较好,printf和scanf讲的很多很细。以前很少用到这两个函数,因为基于单片机的应用的话,用这两个函数对资源的开销太大,而且没有可用的地方。所以看多了这两个函数就有些烦了,但还是坚持看完了这部分,不到一个星期时间看了100多页,每天上基本上看4个小时。虽然比较快,但基本没怎么分心。现在对自己的要求就是能看进去书就行,慢慢养成习惯就好了。 阅读全文
posted @ 2011-09-28 08:38 pulan 阅读(109) 评论(0) 推荐(0) 编辑
摘要:开始看C Primer Plus这本书了,很厚啊,刚开始看感觉不错,讲的通俗易懂,决定坚持一点一点地给啃下来,一个细节也不放过,这次真的下决心了。把这几本C语言书好好看看,下一步就是C++和Linux了。坚持,坚持,再坚持,不放弃,不懒惰。。。 阅读全文
posted @ 2011-09-23 14:47 pulan 阅读(139) 评论(0) 推荐(0) 编辑
摘要:记住一个口诀“左内右本”:const出现在*的左边,则说明指针所指向的内容是常量const出现在*的右边,则说明指针本身是常量如果*左右两边都出现const,那么说明指针本事是常量,它所指向的内容也是常量。 阅读全文
posted @ 2011-09-22 14:03 pulan 阅读(180) 评论(0) 推荐(0) 编辑
摘要:关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,参考了康建东兄的const使用详解一文,对其中进行了一些补充,写下了本文。1. const常量,如const int max = 100;优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)2. const 修饰类的数据成员。如:class A{ const int size; … }const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象, 阅读全文
posted @ 2011-09-22 13:43 pulan 阅读(211) 评论(0) 推荐(0) 编辑
摘要://软件思路:选择RAO做为模拟输入通道; // 连续转换4次再求平均值做为转换结果 // 最后结构只取低8位 // 结果送数码管的低3位显示 #include<pic.h> //包含内部资源预定义 __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 const char TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0X82,0XF8,0X80,0X90}; //定义常数0-9的数据表格 ... 阅读全文
posted @ 2011-09-22 10:04 pulan 阅读(1593) 评论(0) 推荐(0) 编辑
摘要://**************************************************************** // STC单片机EEPROM读写--最简洁的的拿来就用保证没错^_^简洁至上! //---------------------------------------------------------------- //--------------------------------//-------------------------------- //注意:以下为STC89系列的地址 //--------------------------------//. 阅读全文
posted @ 2011-09-22 09:59 pulan 阅读(1331) 评论(0) 推荐(0) 编辑
摘要:原地址:http://blog.csdn.net/csdn_zc/article/details/67769291. 质数判断对于这个,很多人可能会直接这样写:view plaincopy to clipboardprint?intisPrime(intn)//函数返回1表示是质数,返回0表示不是质数{inti;for(i=2;i<n;i++)if(n%i==0)break;returni>=n;}int isPrime(int n) //函数返回1表示是质数,返回0表示不是质数{int i;for (i = 2; i < n; i++)if (n % i == 0)brea 阅读全文
posted @ 2011-09-16 13:27 pulan 阅读(195) 评论(0) 推荐(0) 编辑
摘要:#include "stm32f10x_lib.h"#include <stdio.h>extern void board_Configuration(void); extern unsigned short ADC_ConvertedValue[8];int main(void){ unsigned int i="0"; unsigned short AD_scaled_ex[8]; unsigned short AD_scaled[8]; board_Configuration(); while (1) {for(i=0;i<8;i 阅读全文
posted @ 2011-09-14 13:20 pulan 阅读(713) 评论(0) 推荐(0) 编辑
摘要:C语言之详解#ifdef等宏 这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中#else部分也可以没有,即: #ifdef 程序段1 #denif 这... 阅读全文
posted @ 2011-09-14 11:47 pulan 阅读(223) 评论(0) 推荐(0) 编辑
摘要:用的f_printf()函数,每隔5分钟写一次,但写一段时间后就无法继续写了,也没有死机。不知道什么原因。后来在虾坛有人说用f_write()函数就能解决。还没有试验。这个项目BUG太多了。郁闷 阅读全文
posted @ 2011-09-09 09:03 pulan 阅读(418) 评论(0) 推荐(0) 编辑
摘要:/******************************************************************************************* 函数名称 :I2C_Delay* 功能描述 :* 参数 : 参数名称:输入/输出?类型描述* * 返回值 :* 作者 :* 创建日期 :2006-12-19* 全局变量 :* 全局静态变量:* 局部静态变量:*----------------------------------------修改历史------------------------------------------* 当前版本 : 修改人: 修. 阅读全文
posted @ 2011-09-08 14:17 pulan 阅读(510) 评论(0) 推荐(0) 编辑
摘要:/******************************************************************************************* 文件名称 :tlc2543.c* 版权 :* 模块名称 :TLC2543驱动程序* cpu : stm32f103rct6 主频:72M* 作者 :* 创建日期 :2009-10-13* 功能概要 :*----------------------------------------修改历史------------------------------------------* 当前版本 : 修改人: 修改日期:. 阅读全文
posted @ 2011-09-08 13:46 pulan 阅读(1471) 评论(1) 推荐(0) 编辑
摘要:/******************************************************************************************* 文件名称 :12864.c* 版权 :* 模块名称 :st7920驱动的12864液晶的串行工作方式驱动程序* cpu : stm32f103rct6 主频:72M* 作者 :* 创建日期 :2009-10-15* 功能概要 :*----------------------------------------修改历史------------------------------------------* 当前版本 阅读全文
posted @ 2011-09-08 13:35 pulan 阅读(1311) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示