C语言中的IO_ReadInfo()在程序中c语言flag是什么意思思?有何作用?

C语言超市商品管理1_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
C语言超市商品管理1
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢16726人阅读
#ifndef、(或者#ifndef)、#def、#endif等宏这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是&条件编译&。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。& 条件编译命令最常见的形式为:& #ifdef 标识符& 程序段1& #else& 程序段2& #endif& & 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。& 其中#else部分也可以没有,即:& #ifdef& 程序段1& #denif& & 这里的&程序段&可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。可以用以下的条件编译:& #ifdef WINDOWS& #define MYTYPE long& #else& #define MYTYPE float& #endif& & 如果在Windows上编译程序,则可以在程序的开始加上& #define WINDOWS& & 这样则编译下面的命令行:& #define MYTYPE long& & 如果在这组条件编译命令之前曾出现以下命令行:& #define WINDOWS 0& & 则预编译后程序中的MYTYPE都用float代替。这样,源程序可以不必作任何修改就可以用于不同类型的计算机系统。当然以上介绍的只是一种简单的情况,可以根据此思路设计出其它的条件编译。& 例如,在调试程序时,常常希望输出一些所需的信息,而在调试完成后不再输出这些信息。可以在源程序中插入以下的条件编译段:& #ifdef DEBUG& print (&device_open(%p)/n&, file);& #endif& & 如果在它的前面有以下命令行:& #define DEBUG& & 则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将printf语句删除去。的确,这是可以的。但是,当调试时加的printf语句比较多时,修改的工作量是很大的。用条件编译,则不必一一删改printf语句,只需删除前面的一条&#define DEBUG&命令即可,这时所有的用DEBUG作标识符的条件编译段都使其中的printf语句不起作用,即起统一控制的作用,如同一个&开关&一样。& 有时也采用下面的形式:& #ifndef 标识符& 程序段1& #else& 程序段2& #endif& & 只是第一行与第一种形式不同:将&ifdef&改为&ifndef&。它的作用是:若标识符未被定义则编译程序段1,否则编译程序段2。这种形式与第一种形式的作用相反。& 以上两种形式用法差不多,根据需要任选一种,视方便而定。& 还有一种形式,就是#if后面的是一个表达式,而不是一个简单的标识符:& #if 表达式& 程序段1& #else& 程序段2& #endif& & 它的作用是:当指定的表达式值为真(非零)时就编译程序段1,否则编译程序段2。可以事先给定一定条件,使程序在不同的条件下执行不同的功能。& 例如:输入一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写字母输出。& #define LETTER 1& main()& {& char str[20]=&C Language&,c;& int i=0;& while((c=str[i])!='/0'){& i++;& #if LETTER& if(c&='a'&&c&='z') c=c-32;& #else& if(c&='A'&&c&='Z') c=c+32;& #endif& printf(&%c&,c);& }& }& & 运行结果为:C LANGUAGE& 现在先定义LETTER为1,这样在预处理条件编译命令时,由于LETTER为真(非零),则对第一个if语句进行编译,运行时使小写字母变大写。如果将程序第一行改为:& #define LETTER 0& & 则在预处理时,对第二个if语句进行编译处理,使大写字母变成小写字母(大写字母与相应的小写字母的ASCII代码差32)。此时运行情况为:& c language& 有人会问:不用条件编译命令而直接用if语句也能达到要求,用条件编译命令有什么好处呢?的确,此问题完全可以不用条件编译处理,但那样做目标程序长(因为所有语句都编译),而采用条件编译,可以减少被编译的语句,从而减少目标的长度。当条件编译段比较多时,目标程序长度可以大大减少。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:80973次
排名:千里之外
原创:24篇
评论:18条
(2)(1)(8)(7)(8)(2)(4)C语言运算符_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&C语言运算符
是告诉编译程序执行特定算术或逻辑操作的符号。的运算范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为处理。主要分为三大类:算术运算符、 关系运算符与逻辑运算符、按位运算符。除此之外,还有一些用于完成特殊任务的运算符。类&&&&别算术&关系&逻辑C语言之父(Dennis Ritchie)
1级(左结合)
( ) 圆括号;[ ]下标运算符;-&指向结构体成员运算符;. 结构体成员运算符。
2级(右结合)
“ ! ”逻辑非运算符;“ ~ ”按位取反运算符;“ ++ ”前/后缀增量运算符;“ -- ”前/后缀减量运算符;
“ - ”负号运算符;(类型)运算符;“ * ”指针运算符;“ & ”地址运算符。
3级(左结合)
“ * ” 乘法运算符;“ / ”运算符;“ % ” 取余运算符。
4级(左结合)
“ + ”加法运算符;“ - ”运算符。
5级(左结合)
&& 左移运算符;&& 右移运算符。
6级(左结合)
&、&=、&、&=关系运算符。
7级(左结合)
“ == ”等于运算符;“ != ”不等于运算符。
8级(左结合)
“ & ”按位与运算符,“~“按位取反运算符”。
9级(左结合)
“ ∧ ”按位运算符。
10级(左结合)
“ | ”按位或运算符。
11级(左结合)
“&&”逻辑与运算符。
12级(左结合)
“ || ”逻辑或运算符。
13级(右结合)
14级(右结合)
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 &&=、 &&=赋值运算符。
15级(左结合)
[pre]C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:  子表达式1, 子表达式2, ..., 子表达式n  例如:  a + b, c = b, c++  逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。  逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。优先级:C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、、赋值运算符。其它的都是从左至右结合。
具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而-&及.是取结构成员。
其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。
另外在C语言里,没有前置后置之分,因为++ -- 是右结合所以右侧优先运算,表现为 &操作数后置优先级比较高& 的假象,前置和后置的区分是因为运算符重载而后加入C++的
接下来是算术运算符,*、/、%的优先级当然比+、-高了。
移位运算符紧随其后。
其次的关系运算符中,& &= & &=要比 == !=高一个级别,不大好理解。
所有的逻辑操作符都具有不同的优先级(单目运算符除外,!和~)
逻辑位操作符的&与&比&或&高,而&异或&则在它们之间。
跟在其后的&&比||高。
接下来的是,赋值运算符及。
在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、及赋值运算符。
&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 && &&运算符的左边位0,则右边表达式b就不再判断。
在中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。
赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。
优先级等级口诀
圆方括号、箭头一句号, 自增自减非反负、针强地址长度,
乘除,加减,再移位,
小等大等、等等不等,
八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。
其中“,”号为一个等级分段。
优先级等级注释
“圆方括号、箭头一句号”指的是第15级的运算符。其中圆方括号很明显“()、[]”,箭头 指的是指向结构体成员运算符“-&”,句号 指的是结构体成员运算符“.” ;
“自增自减非反负、针强地址长度”指的是第14级的运算符。其中 非 指的是逻辑运算符“!”,反 指的是按位取反运算符“~”,负 指的是负号运算符“-”,针 指的是指针运算符“*”,强 指的是运算符,地址 指的是地址运算符“&”,长度 指的是长度运算符“sizeof ”;
“乘除,加减,再移位”移位指的是左移运算符“&&”和右移运算符“&&”,其中除法还包括了 取余运算符“%”;
“小等大等、等等不等” 指的是第10级到第9级的运算符:&、&=、&和&=,等等指的是等于运算符==,不等指的是不等于运算符!=
“八位与,七位异,六位或”其中 八位与 指的是第8级的 按位与 运算符“&”,七位异 指的是第7级的按位运算符“^”,六位或 指的是第6级的按位或运算符“|”;
“五与,四或”指的是第5级、第4级的逻辑与运算符“&&”和逻辑或运算符“||”;
“三疑,二赋,一真逗”指的是第3级到第1级的运算符。其中,三疑指的是“?:” (三有双重含义:即指优先级别是三,它的运算符类型也是三目,疑也取“?”之意),二赋 指的是赋值运算符=、+=、-=、*=、/=、%=、&&=、&&=、&=、^=和|= ,一真逗 指的是第1级的“,”运算符,真字只是为了语句需要罢了。
由于C语言的运算符优先级与的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!
1、赋值运算符:a=5;
第一个语句把5赋给变量a;第二个赋值语句的意思是把0同时赋值给两个变量。这是因为赋值语句是从右向左运算的,也就是说从右端开始计算,先b=0,然后a=b。
2、复合赋值运算符:a=1;a+=3;
上面第二个赋值语句等价于a=a+3;即a=4。
3、算术运算符:Area=Height*Wnum=num1+num2/num3-num4;
第一个赋值语句Height和Width相乘结果赋给变量Area;第二个赋值语句先完成num2与num3的整除运算,然后与num1相加,再减去num4,结果赋给num。运算符先算乘除再算加减。单目正和单目负最先运算。
4、逻辑运算符:a=1,b=1;
因为a=1为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
5、关系运算符:if(a&0)...
如果a&0,则执行if语句中的内容,否则退出。
6、:a=(b&0)?b:-b;
当b&0时,a=b;当b不大于0时,a=-b;其实上面的意思就是把b的给a。
7、:b=2,c=7,d=5;
a=(++b,c--,d+3);
有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3=8,所以a=8。
8、位逻辑运算符
包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符  以操作数12为例。位运算符将数字12视为1100。位运算符将操作数视为位而不是数值。数值  可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化为二进制,并相应地返回1或0。  位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。例如:  表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1  表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。  表达式10^15表示(1010 ^ 1111), 它将返回表示0101的值5。此时是同性相斥,相同的就为假。  表达式~10表示(~1010),它将返回表示0101的值 -11。此号好理解,按位取反。在众多的国际互动论坛上,计算机爱好者们以特有的方式纪念这位编程语言的重要奠基人。许多网友的发帖中没有片言只字,仅仅留下一个分号“;”[1]。在C语言中,分号标志着一行指令语句的结束,网友们以此来悼念“C语言之父”,美国著名计算机专家丹尼斯·里奇(Dennis Ritchie)所引领的时代悄然远去。
在日益纷繁复杂的程序设计语言王国中,C语言因其简洁、有效、通用的特性而始终占据一席之地。被誉为“C语言之父”,同时也是操作系统Unix之父的C语言发明人之一——丹尼斯·里奇于北京时间日以70岁之龄辞世。
生于日的曾在哈佛大学学习物理学和应用数学,1967年他进入贝尔实验室,并曾经担任朗讯技术公司系统软件研究部门的领导人。
1983年,美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的肯·汤普逊与里奇,获奖原因是他们“研究发展了通用的操作系统理论,尤其是实现了Unix操作系统”。并且,美国计算机协会当年还决定新设立一个奖项——软件系统奖,以奖励那些优秀的软件开发者,首个软件系统奖当然也是非他们两人莫属。
尽管通过Unix拿奖拿到手软,但令里奇引起最大关注和反响的则是C语言的问世。1999年,里奇和汤普逊为发展C语言和Unix操作系统一起获得了美国国家技术奖章。
虽然在C语言之后,C++、Java等各式各样计算机高级语言层出不穷,但不少程序员仍旧认为,C语言简洁、高效、灵活的特性令其具有独特魅力。“现在的程序编写朝着越来越冗长庞大的方向发展,而C语言虽然属于相对‘低级’的编程语言,但它的简洁之美是无可替代的。”一位电脑程序员道出了自己格外青睐C语言的原因。
和里奇所创造的C语言一样,Unix系统也同样具有简洁、朴素、小巧的特性。但正如里奇自己所说的那样,“Unix系统是一个简单基本的操作系统,但学会欣赏简洁需要天赋。”而里奇本人,尽管在软件发展史上占有举足轻重的地位,也同样在从事的领域辛勤而低调地耕耘近40年。
新手上路我有疑问投诉建议参考资料 查看二级C语言程序设计_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&二级C语言程序设计本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
C语言是一种,它既具有的特点,又具有的特点。全国计算机等级考试有二级c语言这个考试的项目。
全国二级C语言程序设计考试大纲(2013年版)1. 熟悉Visual C++6. 0集成开发环境。
2. 掌握结构化程序设计的方法,具有良好的程序设计风格。
3. 掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4. 在Visual C++6. 0集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。一、C语言程序的结构
1. 程序的构成,main函数和其他函数。
2. 头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3. 源程序的书写格式。
4. C语言的风格。
二、数据类型及其运算
1. C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2. C运算符的种类、运算优先级和结合性。
3. 不同类型数据间的转换与运算。
4. C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。二级各科考试的公共基础知识大纲及样题见高等教育出版社出版的《全国二级教程——公共基础知识(2013年版)》的附录部分。
三、基本语句
1. 表达式语句,空语句,复合语句。
2. 输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计
1. 用if 语句实现选择结构。
2. 用switch语句实现多分支选择结构。
3. 选择结构的嵌套。
五、循环结构程序设计
1. for循环结构。
2. while和do-while循环结构。
3. continue语句和break语句。
4. 循环的嵌套。
六、数组的定义和引用
1. 一维数组和二维数组的定义、初始化和数组元素的引用。
2. 字符串与字符数组。
1. 库函数的正确调用。
2. 函数的定义方法。
3. 函数的类型和返回值。
4. 形式参数与实在参数,参数值的传递。
5. 函数的正确调用,嵌套调用,递归调用。
6. 局部变量和全局变量。
7. 变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理
1. 宏定义和调用(不带参数的宏,带参数的宏)。
2. “文件包含冶处理。
1. 地址与指针变量的概念,地址运算符与间址运算符。
2. 一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。
3. 用指针作函数参数。
4. 返回地址值的函数。
5. 指针数组,指向指针的指针。
十、结构体(即“结构冶)与共同体(即“联合冶)
1. 用typedef 说明一个新类型。
2. 结构体和共用体类型数据的定义和成员的引用。
3. 通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。
十一、位运算
1. 位运算符的含义和使用。
2. 简单的位运算。
十二、文件操作
只要求缓冲文件系统(即高级磁盘I/ O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。
1. 文件类型指针(FILE类型指针)。
2. 文件的打开与关闭(fopen,fclose)。
3. 文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf 函数的应用),文件的定位(rewind,fseek函数的应用)。
上机考试,考试时长120分钟,满分100分。
题型及分值
单项选择题40分(含公共基础知识部分10分)、操作题60分(包括填空题、改错题及编程题)。
Visual C++6. 0。[1]
新手上路我有疑问投诉建议参考资料 查看C语言中函数调用是什么意思,调用有什么作用?_百度知道
C语言中函数调用是什么意思,调用有什么作用?
提问者采纳
2;2,b;/ } &#47,c;/ c=a+b; c-=(a-b)/计算l=(j+k)-(j-k)/.z=x+y,k):int fun( return c.c=fun(a.,y。*还有一个优点就是.c=a+b:int fun(2;.,c,z; &#47,节省程序的代码量(尤其是计算公式很复杂的情况更突出),标准c提供的函数double sin(double x);2,z,比如;计算z=(x+y)-(x-y)&#47,就采用一个函数来替代相似的语句,甚至可以不提供源代码就可以; &#47....l=j+k,按照函数调用规则就可以使用了,k.;.z=fun(x、经典的话,j;,x.;2.}由于它们的计算公式相同.; c=a+b;2:void main(){int a.,b:你调用函数时.;2; return c,l; }void main(){ c-=(a-b)&#47,y),拿来可用而不必去看具体标准函数库是怎样计算的,y,程序简洁易读.,int b) {; /&#47。*你的函数如果写得正确,j;按照公式计算并返回结果这样程序就变成了..}*这样的效果是,l,完全可以封装成标准函数拿给其他人使用,b).,比如..;2;计算c=(a+b)-(a-b)&#47,k如果在设计c语言程序中,你只要知道这是个计算正弦函数值的函数即可;/ z-=(x-y)&#47,int b) { l-=(j-k)&#47.l=fun(j:重复利用了函数的代码,便于统一修改计算公式和方法,x,反复要用到一个组合计算的程序段,无须知道算法的细节.; c-=(a-b)&#47
提问者评价
太给力了,你的回答完美解决了我的问题!
其他类似问题
按默认排序
其他4条回答
输入参数,得到结果,不用管怎么处理的,运行效率更高所以直接拿来用即可,不用管中间的处理过程这一做成一个一个的小的功能模块,在用到的时候这就是模块化设计的意义所在在程序中,并且很多代码老前辈写的比你更好,可以把它做成一个黑盒子,减小开发时间,调用即可这一可以减小代码的重复编写,很多处理时重复的,很多函数都是用汇编写的
调用一个函数,就是执行一个函数的意思。
比如一个方法,在主函数里面去调用这个方法
就是实现一个功能
函数调用的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 c语言void是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信