c语言
文章平均质量分 51
talent_CYJ
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于链接的一些理解
对于链接,它是程序编译的一个环节。 绝大多数编译器都不是一个单一的庞大程序,而是由许多稍小的程序组成。这些单独程序通常包括:C预处理器、语法和语义检查器、代码生成器、汇编程序、优化器、链接器、还包括一个调用所有这些程序并向各个程序传递正确选项的编译器驱动器程序。链接一般分为两种:静态链接和动态链接。如果函数库的一份拷贝是可执行文件的物理组成部分,则称为静态链接。如果可执行文件只是包含了文件名,让载原创 2016-04-28 14:14:41 · 817 阅读 · 0 评论 -
将C语言的声明翻译成通俗的语言
#include #include #include #include #define MAXTOKENS 100#define MAXTOKENLEN 64enum type_tag { IDENTIFIER, QUALIFIER, TYPE }; /* 标识符,限定符,类型 */ struct token { char type; char string[原创 2016-04-22 16:55:54 · 1070 阅读 · 0 评论 -
关于((ch = getchar()) != EOF),ch声明为整型的问题
在使用C语言的输入功能时,经常会看到以下的一个常用代码段int ch;while ((ch = getchar()) != EOF && ch != '\n') ;此处为什么不声明ch为char类型而是声明为int类型,为什么ch被声明为整型,而事实上需要用它来读取字符?这是因为char变量可以由范围在0~255中的无符号整数来表示,但EOF可能具有数值-1,该值对无符号char变原创 2015-10-04 18:22:03 · 3265 阅读 · 0 评论 -
将一个整数转换为单个字符输出函数实现的细节性问题
首先看一下以下这个程序:void printnum (long n){ if (n < 0) { putchar('-'); n = -n; } if (n >= 10) printnum(n / 10); putchar ((int)(n % 10) + '0');}该程序的流程: 首先检查n是否为负,如果原创 2016-05-19 16:34:43 · 943 阅读 · 0 评论 -
关于C语言的按位运算符
简单的不多说了,写此文章记录为了加深自己对按位运算符的运用。按位运算符有六个,分别是&按位与、|按位或、^按位异或、<<左移、>>右移、~按位求反&经常用于屏蔽某些二进制位|则用于将某些二进制位置置为1.^则是当六个操作数对应位不同时,将该位设为1,否则设为0.移位运算符<<和>>分别用于将运算的左操作数左移与右移,移动的位数由右操作数指定(右操作数必须是非负值,否则结果未定义)。对unsigned原创 2016-06-28 15:23:40 · 1192 阅读 · 0 评论 -
编写一个删除C语言程序中所有注释语句的程序
#include <stdio.h>void rcomment (int c);void in_comment_one (void); //该函数用于处理/*及*/的注释符void in_comment_two (void); //该函数用于处理//的单行注释符void echo_quote (int c);int main(void){ int c; while (原创 2016-06-27 17:48:43 · 10379 阅读 · 0 评论 -
C语言二分查找法实现与细节
刚学C的时候没过多久就接触到这种算法,总的来说这个算法并不难。时隔好久,今天看了下书,加深了一些理解,谨记此文,用于回顾及梳理知识。如要求: 编写一个函数,对一个已排序的整数表执行二分查找。函数的输入包括一个指向表头的指针,表中的元素个数,以及待查找的数值。函数的输出是一个指向满足查找要求的元素的指针,当未查找到要求的数值时,输出一个NULL指针。下图显示大致搜索过程: 假定x是要搜索的元素原创 2016-05-16 17:42:32 · 2714 阅读 · 0 评论 -
LINUX/UNIX的文件操作函数
本文用于记录在LINUX编程中,常用的文件操作函数,包括系统调用和库函数。针对输入输出操作,直接使用底层系统调用的一个问题是它们的效率十分低,原因在于:1.使用系统调用会影响系统的性能,与函数调用相比,系统调用的开销要大些,因为在执行系统调用时,Linux必须从运行用户代码切换到执行内核代码,然后再返回用户代码。 2.硬件会限制对底层系统调用一次所能读写的数据块大小。比如,磁带原创 2016-05-04 16:00:25 · 1980 阅读 · 0 评论 -
关于C语言中无符号与有符号数之间运算问题
int array[] = {23, 34, 12, 17, 204, 99, 16};#define TOTAL_ELEMENTS (sizeof(array)/sizeof(array[0]))int main(void){ int d = -1, x; /* ... */ if (d <= TOTAL_ELEMENTS - 2) x = array[d原创 2016-04-20 10:45:17 · 1590 阅读 · 0 评论 -
关于C语言时间获取函数调用的概念
在C语言的程序开发过程中,经常会用到获取时间的函数。而获取到的时间又分为本地时间还有世界统一时间UTC。对于这两个概念,世界的每个地区都有自己的本地时间,在Internet及无线电通信时,时间的统一非常重要! 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信中,为统一而普遍使用一个标准时间,称为通用协调时。UTC与格林尼治平均时一样,都与英国伦敦的本地时相同。 在C程序开发中,原创 2016-04-19 09:51:22 · 1347 阅读 · 0 评论 -
C旧式与新式函数的声明与定义
关于C语言函数的原型声明与函数定义,这里涉及了许多的内容,以此文章,记录自己所了解的知识,以备日后查阅,同时也帮助自己和大家了解这当中暗含的“陷阱”。由于历史的原因,C语言的函数声明有旧式和新式之分,旧式就是K&R,而新式则是ANSI,如下图: 现在倡导的是使用后者,而不要使用前者,对于K&R,由于存在大量旧式代码,为了保持兼容,所以没有被正式废弃。 这两者在参数传递的时会有所区别,在K&R中,原创 2016-05-03 12:02:04 · 5539 阅读 · 0 评论 -
关于程序运行时的数据结构
对于可执行文件,它包含了许多的段,例如(数据段,文本段,BSS段等),它们是二进制文件中简单的区域,里面保存了和某种特定类型(如符号表条目)相关的所有信息。对于一个源文件,哪些地方会放到哪个段,如下图: 可得知,程序代码是存放在文本段,初始化的全局变量和静态变量是存放到数据段中的,而没有初始化的全局变量和静态变量则是存放到BBS,运行时所需要的BSS段的大小记录在目标文件中,但BSS段并原创 2016-04-29 10:54:35 · 2440 阅读 · 0 评论 -
关于C语言的EOF
EOF,它是end of file的缩写,表示”文字流”(stream)的结尾。这里的”文字流”,可以是文件(file),也可以是标准输入(stdin)。 比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。int c;while ((c = fgetc(fp)) != EOF) { putchar (c);}EOF不是特殊字符,而是一个定义在头文件stdio.h的常原创 2015-10-04 18:07:16 · 752 阅读 · 0 评论
分享