‘壹’ c语言编译后出现的文件后缀,是什么意思
.ilk 当选定渐增型编译连接时,连接器自动生成ILK文件,记录连接信息
.obj project中每个cpp经编译成为obj(object)文件,所有obj文件经链接(link)成为可执行文件。所以obj可称为目标文件或中间文件 .pch 预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码.
.pdb 全称是 program debug database
它在工程编译时自动生成, 程序运行时是不需要它的
但是,要debug代码时,需要加载它,否则不能调试 .exe 是最终编译生成的可执行文件 如果你程序编译完毕,可以正常使用,可以只保留.exe文件,因为其它文件都是编译过程中间生成或用到的,执行时并不需要。
‘贰’ 头文件中的ifndef/define/endif什么用处
ifndef和endif是一对条件预编译语句,给你一个例子:
ifndef abc;//意思是如果没有定义abc这个特征符,则编译之后到endif之前的语句否则略过
//define abc;这条语句;
define abc;
endif;
比如有一段代码,有时需要根据需要不进行编译或进行编译,如以下代码:
ifdef abc;
某段代码;
endif;
意思就是如果程序中定义了abc特征符,则编译这里所说的"某段代码”,否则不进行编译,
如果程序是这样:
ifndef abc;
define abc;
endif;
ifdef abc;
某段代码;
endif;
则这里所说的“某段代码”肯定会被编译,因为在设计程序之初,可能需要根据某个条件来决定是否编译“某段代码”,但是后来发现,这样的条件编译已经没有必要,而且必须要编译“某段代码”,两种办法,一种是把ifdef abc和endif;去掉;另一种就像这里一样,在
ifdef abc;
某段代码;
endif;
之前加
ifndef abc;
define abc;
endif;
‘叁’ c++语言问题.!~
C是系统级的编程语言
C++是功能很强大,比C开发效率高,因为C++提供了很多算法和容器类。主要用于多种应用开发,尤其是桌面开发。
C#,很java类似,有自个的应用框架,开发web和桌面程序速度很快。而且基于.net执行,.net其实就是在本地电脑上又加了一层运行时。这样可以很好的解决本地异构的问题,凡这种语言类脚本语言,特别适合做web开发,因为web开发主要是面临异构的问题。
代码生成效率:C<C++<C#
代码执行效率:C>=C++>C#
1.c++中可以使用宏,当然C++中有很多方式可以避免宏的使用,宏就是文本替换,你给一段代码起一个名字,然后再你程序中用的这段的代码的时候,就直接插入宏名即可,编译之前(预编译)由预编译器将宏名换成实际代码,然后编译。C++中替代宏的方案有内联函数(inline),enum,const,template之类的东西。
2.const是变量限定词,类似的有volatile,register,auto,static,extern之类,你可以翻阅相关参考书(C++
primer)。const和宏常量,enum常量不同,const分配了存储空间,在程序的.rdata段中,但请注意,这个词不要常用,你应该用它来先点函数的传入参数。
3.enum即枚举类型,枚举是整形的一个子集,而且这个东西比宏常量好,宏常量出现在预编译时,enum常量出现在编译时,const常量出现在运行时。因此宏常量只是文本替换,enum常量需要做静态类型检测,如果类型不匹配,则报编译时错误。const常量会做运行时类型检测。
4.template是C++泛型编程中内容,所谓泛型编程就是编写的代码可以针对多个数据类型。如你可以编写一个加法函数,这个函数可以进行整数,浮点数,复数浮点运算,也可以进行字符串的拼接运算。
5.namespace是命名空间,用来解决标识符命名冲突的问题。其实就是形成双冒号分字符串来形成标识符。如std::myns::str="ni
shi
xiao
gou!";
std::youns::str="ni
bu
shi
xiao
gou~".
6.malloc,free
是C语言中动态创建变量用的,new和delete是C++中动态创建变量用的。其中malloc和new是分配,free和delete是回收。当然new和delete比malloc和free高级。
还是不懂的话,就认真看书吧
,我告诉你这些,你要是明白了
超出大学本科水平了
!
‘肆’ c语言中的“宏”是指什么
是一种批量处理的称谓。计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。
“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。
计算机语言如C语言或 汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。
在Objective-C语言源程序中,允许用一个标识符来表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去替换,这称为宏替换或宏展开。
宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。在Objective-C语言中,宏分为有参数和无参数两种。
(4)c语言inline预编译扩展阅读
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65
Hxx P#xx Qxx
Rxx格式输入的,xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM #xx就是变量号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量。
一般OTD系有#0~#100~#149~#500~#531.关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据。我们如果说#100=30那么现在#100地址内的数据就是30了。
B类宏能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定M、S、T、G代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。
‘伍’ 在c语言中,如何自定义头文件
自定义头文件通常放在使用该头文件的源文件所在的目录中,并使用#include "MyHead.h"来包含。
头文件是不编译的,因为C语言编译过程之前有个预编译过程。在这个过程中用头文件中的内容替换源文件中“#include”命令,所以在编译器看来,没有头文件,只有源文件。预编译过程还包括条件编译。
头文件为了防止被重复包含,通常的格式是:
/* MyHead.h */
#ifndef _MYHEAD_H_
#define _MYHEAD_H_
(这里是头文件的内容)
#endif /* _MYHEAD_H_ */
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
‘陆’ c语言的语言组成
数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
指针
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
字符串
C语言的字符串其实就是以'