编译器个数
1. C++如何让编译器判断输入数的个数
容易懂的方法就是输入的时候定义一个值为结束符和定义一个记数的变量a=0,如果定义"0"为结束符的话,输入的值先判断是否为结束符,然后不是结束符则a++,如果是结束符则跳出循环,这样的话此时的a值就为输入的值了```
2. 怎么告诉编译器我要输入n个数
int n;
cin>>n;
for(int i=0;i<n;i++){
int x=0;
cin>>x;
}
3. C 编译器对数组是如何处理的
在编译时,变量分成两种形式存放,一种叫初始化段,一种叫未初始化段
如果你定义数组没有给出赋值语句中的初始值,该数组将保存在未初始化段;否则放入初始化段
编译器将记录初始化段中的数组起始地址、数据类型、元素个数,初始化数据在常量区的起始地址,数据个数
在程序运行时,系统先申请各段内存,然后针对初始化段进行初始化工作,方法是从常量段中取出初始化数据给你有初始值的变量赋值,假设你程序开设10个单元的数组,如果没有优化选项,常量段中将保存10个0用来初始化这个数组,如果有优化选项,可以合并相同常量,则仅保存一个0,并用这个0来初始化所有10个数组元素。
4. 同样的变量类型,在不同的编译器中占的字节数有的为什么不一样,有的为什么又一样
这很正常,每个编译器有自己的规定嘛,而且这和电脑也有关系,比如16位,32位机,64位都是可能不同的。在国外的c语言书《The C Programming Language 》《 C primer plus》
上有介绍 大概了解一下就行了。另外你可以自己在里面写程序测试你的使用环境里的是几个字节
5. 常见的C语言编译器是什么
目前最流行的C语言编译器有以下几种:
1、GNU Compiler Collection 或称GCC
GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。
GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的着名例子,由自由软件基金会以GPL协议发布。
2、Microsoft C 或称 MS C
Microsoft C 是c语言的一种IDE(集成开发环境),常见的还有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......
3、Borland Turbo C 或称 Turbo C
Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。
(5)编译器个数扩展阅读:
C编译的整个过程很复杂,大致可以分为以下四个阶段:
1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
3、汇编阶段将汇编语言翻译成机器指令。
4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
6. 每个编译器都不一样么 c语言一般用什么编译器 每次一种编译器不能编译 另一种却能编译出
编译器就是c语言编译成二进制的东西,
不同的编译器是不同的,
比如16位系统和32位系统的编译器就不同,因为16位的认为int是2字节,32位的则认为是4个字节。
另外
linux上的编译器跟windows下的编译器也不同,linux上的认为内核空间占1G,而windows下则认为占2G,
此外两个系统对环境变量以及其他的设置也不同所以编译器更不能用。
而且不同的CPU的指令集时不同的,所以同样int
a
=1
最后被编译成的二进制代码也是不同的。
C语言的编译器有很多,windows下的编译器也有很多,不同的编译器可能会做一些不同的优化,linux下的gcc也可以添加选项让他编译windows下运行的程序。
main(int
argc,char*argv[
】
)
argc
是你的参数个数
argv是你的参数。
比如你最终程序叫
add
那么
你在命令行执行add
1
2
那么argc
=3
第一个参数使你的add,
第二个第三个就是
1
2,
在函数内部你就可以获取这俩参数进行相加然后打印
visual
是个IDE,集成开发环境,已经集成好了windows下使用的编译器连接器
等,
编写代码完成后直接点击编译就行了。
IDE的默认编译器是可以更改的,不同的IDE设置不同。
7. 编译器怎么编译整数类型的呢
编译器是以整型存储整数的,C语言中atoi,_ttoi等函数就可以实现字符串数值到整形数值的转换,自己可以按照以下算法实现:
BYTE HexChar2Number(char c)
{
if('0' <= c && c <= '9')
{
return (BYTE)(c - '0');
}
if('A' <= c && c <= 'F')
{
return (BYTE)(c - 'A' + 10);
}
if('a' <= c && c <= 'f')
{
return (BYTE)(c - 'a' + 10);
}
printf("error char: %c\n", c);
return 0;
}
逐字符识别,识别多位数时自己乘以进制权值。
8. linux 交叉编译器 有哪些
编译选项个数
内核的编译选项的个数非常多, v2.6.38的内核中就有 12 000 个左右的设置选项(这是包含所有arch的配置选项).
内核编译选项不仅多, 有些编译选项之间还存在依赖关系, 所以手动设置编译选项几乎是不可能的.
值得庆幸的是, 只要知道自己需要设置的那些选项, 就可以使用 make ***config 来进行设置, 它还会自动处理依赖关系.
配置编译选项:
设置内核编译选项是通过 kconfig 这个工具来完成的.
kconfig 的源码就是内核代码中 script/kconfig 目录下
各个编译选项的选择有3种方式:
编译方法:
make menuconfig :: 源码根目录下生成 .config (没有会自动生成), .config中就是各个内核编译选项的选择状况.
make defconfig :: 根据当前系统的架构默认 .config 生成内核源码目录下的 .config (每个架构的配置文件: ex. arch/x86/configs/x86_64_defconfig)
make oldconfig :: 将已有的 .config 放到源码根目录下后执行, 目的是为了复用之前的内核编译选项的配置.
make xconfig :: 图形化配置, 需要qt3, 个人觉得没有必要, 有 make menuconfig 就足够了.
make localmodconfig :: 生成以正在使用的内核模块为对象的 .config
=y :: 直接编译到内核中
=m :: 以模块方式编译到内核中
不设置 :: 不编译
9. 为什么不同的c编译器中int类型的数占用字节不同
不管什么类型,编译型语言都会把源码编译成机器码,由于不同平台寄存器位宽不一样, 所以有了自己对int的规定, 导致int 这个数据类型比较特殊,具体分配的字节数与机器字长和编译器有关。但一般等于机器寄存器位宽(64位平台除外,默认为4字节),如在32位平台上(所谓32位平台是指通用寄存器的数据宽度是32)编写代码,int 类型分配4个字节,而在16位平台是则分配2个字节。
编译器是把代码转换为机器码的软件,如果他愿意,可以把int转换为256位的,只不过会增加机器的复杂度,降低可移植性。
10. 使用vim编译器打开四个文本文档统计单词个数
可以的。
vim编辑器是Linux系统下标准的编辑器,它是我们使用Linux系统不能缺少的工具。Linux系统的任何版本,vim编辑器是完全相同的,学会它之后,就可以在Linux的世界里畅行无阻。vim编辑器有是那种模式,分别为命令模式、插入模式和末行模式。