
C语言
东方青
这个作者很懒,什么都没留下…
展开
-
小议fprintf函数
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [,转载 2013-05-20 17:12:05 · 582 阅读 · 0 评论 -
C 内存分配
c 内存分配1、程序代码区:存放函数体的二进制代码。 2、全局区数据区:全局数据区划分为三个区域。 全局变量和静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统释放。我们所说的BSS段(bss segment)通常是指用来存放程序转载 2013-11-12 17:23:17 · 749 阅读 · 0 评论 -
判断一个系统的大小端函数
判断一个系统的大小端函数小端:低地址存放地位数据;大端:低地址存放高位数据;而网络中传输是用大端。用代码实现大小端利用了共用体的原理实现判断是比较简单的一个方法:[html] view plaincopyprint?#include stdio.h> union n{ int a; char b; }; int main转载 2014-06-02 17:26:34 · 532 阅读 · 0 评论 -
平衡二叉树 之 AVL树
AVL树是最先发明的自平衡二叉查找树。AVL树以其发明者前苏联学者 G.M. Adelson-Velsky 和 E.M. Landis 名字而命名,他们在1962年的论文《An algorithm for the organization of information》中发表了它。[参考WiKI]AVL树中,一个非常重要的概念为平衡因子(Balance factor),对于任意节点 x ,其平转载 2014-06-04 17:56:25 · 454 阅读 · 0 评论 -
平衡二叉树 之 红黑树
1. 红黑树的特性Red-Black Tree ( RBT)也是一种自平衡二叉树,其统计性能要好于 AVL树 。它是在1972年由 鲁道夫·贝尔 发明的,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的。[参考Wiki]一般的,红黑树同时满足以下转载 2014-06-04 17:54:27 · 391 阅读 · 0 评论 -
C语言 EOF是什么?
我学习C语言的时候,遇到的一个问题就是EOF。它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while ((c = fgetc(fp)) != EOF) { putc转载 2014-06-11 10:21:57 · 532 阅读 · 0 评论 -
tcflush() 的用法
tcflush() 丢弃要写入引用的对象,但是尚未传输的数据,或者收到但是尚未读取的数据,取决于 queue_selector 的值: TCIFLUSH 刷新收到的数据但是不读 TCOFLUSH 刷新写入的数据但是不传送 TCIOFLUSH 同时刷新收到的数据但是不读,并且刷新写入的数据但是不传送通俗地说就是将输出缓冲器清空,把输入缓冲区清空。缓冲区里的数据都废弃转载 2014-06-11 15:27:55 · 793 阅读 · 0 评论 -
tcgetattr
tcgetattr目录1头文件2函数原型3说明4范例1头文件#include2函数原型int tcgetattr(int fd, struct termios *termios_p);3说明tcgetattr函数用于获取与终端相关的参数。参数fd为终端的文件描述符,返回的结果保存在termios结构体中,该结构体一般包括如转载 2014-06-11 15:24:42 · 548 阅读 · 0 评论 -
C函数之memset()函数用法
C函数之memset()函数用法1.功能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针2. 需要的头文件 or 3.函数原型: void *memset(void *s,int ch, unsigned n)4.memset可以方便的清空一个结构类型的变量转载 2014-06-03 10:14:03 · 492 阅读 · 0 评论 -
AS3933唤醒帧解释
AS3933唤醒帧解释 本文博客链接:http://blog.youkuaiyun.com/jdh99,作者:jdh,转载请注明. 现在在做一个基于AS3933的唤醒激活系统,分为A,B两个设备.A设备需要产生125KHz信号,B设备上有AS3933芯片,AS3933接收A设备产生的125KHz信号,然后激活唤醒MCU开始工作. AS3933的唤醒机制转载 2014-11-01 21:28:35 · 1348 阅读 · 1 评论 -
IAR for MSP430 关于添加自定义头文件的两种方法 .
IAR for MSP430 关于添加自定义头文件的两种方法上次编写关于430的程序还是在一年半前,再次使用时新版本的IAR5.31时发现又不会添加头文件了,想想当时用的时候也遇到过类似问题,最后也不知是如何解决的,在利用workspace栏添加时,倒也能添加,只是不再main分目录下,即便包含了xxx.h文件,编译时仍然会提示“can no find xxx.h”。于是在网上搜了一下有关I转载 2014-11-02 18:03:11 · 646 阅读 · 0 评论 -
结构体的内存分配
假设这台机器 sizeof(char) = 1 sizeof(int) = 4 sizeof(double) = 8枚举类型只为最宽的数据分配内存,在不同是时候,用的是同一块内存;在默认情况下,VC规定各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。下面列出常用类型的对齐方式(vc6.0,32位系统)。类型 对齐方式转载 2013-11-12 17:16:28 · 648 阅读 · 1 评论 -
C++内存地址分配与划分
内核:在一些系统中,当系统调用发生时,操作系统或者操作系统内核会编程应用程序内存的一部分。栈:栈中包含活动记录,其中包含当前活动函数调用的返回地址和局部变量等信息。共享库:为了动态链接共享库文件而创建的一个内存片段堆内存:被用作堆内存来使用和分配的一块内存空间。如果运行时需要一些可变大小的小内存块,那么这些内存就是从这个区域中分配的未初始化的数据: 没有初始化的全局变量被放在固定地址中。通常,这段转载 2013-11-12 17:15:43 · 677 阅读 · 0 评论 -
sprintf函数详细解释
sprintf函数详细解释sprintf() 格式化输出函数(图形)功能: 函数sprintf()用来作格式化的输出。用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);说明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再转载 2013-05-22 09:08:51 · 956 阅读 · 0 评论 -
关于inline函数
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/};inline函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline函数必须在调转载 2013-05-08 19:58:36 · 329 阅读 · 0 评论 -
inline函数
inline函数自己对 inline 函数做个总结(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline函数对编译器而言必须是可见的,以便它能转载 2013-05-08 20:04:33 · 420 阅读 · 0 评论 -
关于字符编码,你所需要知道的
字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题。这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助。还是得从ASCII码说起说到字符编码,不得不说ASCII码的简史。计算机一开始发明的时候是用来解决数字计算的问题,后来人们发现,计算机还可以做更多的事,例如文本处理。但由于计算机只识“数”,因此人们必须告诉计算机哪个数字来代表哪个特定字符,例如65转载 2013-05-22 13:12:00 · 491 阅读 · 0 评论 -
在你的机器上,字符的范围有多大?
看《c与指针》的疑问 2013-04-27 00:44:56| 分类: 默认分类 | 标签:疑问 的 |字号 订阅看《c与指针》的疑问我在学习中遇到的问题。1.在你的机器上字符的范围有多大?有一种做法是printf("signed char min =%d\n",-(char)((unsigned char)~0>>1));prin转载 2013-05-22 21:49:31 · 1407 阅读 · 0 评论 -
c/c++下修改字符串常量
请在(且只能在TC2.0)中运行下面代码,先不要看结果,想想会得到什么: #include #include int main( int argn, char* argv[] ) { char* szStringA = "Hello,world!"; char* szStringB = "Hello,world!"; *szStringA = '-';转载 2013-05-23 10:08:50 · 565 阅读 · 0 评论 -
C语言32个关键字
关键字就是已被C语言本身使用,不能作其它用途使用的字。例如关键字不能用作变量名、函数名等 由ANSI标准定义的C语言关键字共32个: auto double int struct break else long switch case enum register typedef char extern return union const f转载 2013-05-23 10:13:24 · 480 阅读 · 0 评论 -
C语言中Exit函数的使用
语言csignal编译器exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值.. exit(1)表示进程正常退出. 返回 1; exit(0)表转载 2013-05-23 21:17:35 · 837 阅读 · 0 评论 -
编写一个程序,一行行的读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来
《C和指针》..编程题1-4题目:编写一个程序,一行行的读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,可以假定所有的输入行均不超过1000个字符 程序设计思路:首先,声明两个数组,temp[MAX]、Len[MAX],它们的作用分别是:temp用来接收从屏幕上输入的字符,Len用来存放所输入的最长的字符数组。getchar()函数的特点:原创 2013-05-14 17:18:09 · 3277 阅读 · 0 评论 -
递归解决全排列(有重复字符)
学习了递归之后,第一个练习就是用递归解决“斐波拉契数列”。第二个就是“汉诺(Hanoi)塔”递归解法、第三个就是“全排列”了,总的来说,在全排列上花的时间比较多!起始程序代码如下:#include void permutation(char s[],int b,int e){ if((b >= 0)&&(b <= e)) { if(b == e) { print原创 2013-10-25 16:15:51 · 1144 阅读 · 0 评论 -
IAR建立CC2530工程的设置问题及生成.hex文件 .
这篇是转载过来的,其实设置都差不多:利用IAR建完一个工程后,进行设置如下:这里以CC2430为例子,CC2530设置也差不多。 选择 Project 菜单下的Options 配置与 CC2430 相关的选项。1、General Options选项,按下图配置Target标签,选择Code model 和Data model,以及其它参数。 a、单击 Derivative转载 2014-11-02 14:57:16 · 868 阅读 · 0 评论