导航:首页 > 源码编译 > c语言中的用法和编译器有关系吗

c语言中的用法和编译器有关系吗

发布时间:2022-04-23 07:57:46

⑴ C语言中的//注释风格与编译器是否有关

无关的,每种语言有不同修饰风格,同一语言在不同编辑器上修释都一样。如果在不同编辑器上注释方法不同,假如在vc
上和vs上不同,那么把在vc
上写的程序在vs
上编译就会出错,可事实呢
?

⑵ 为什么c语言的编译器可以用c语言来写

所谓C语言编译器,就是把编程得到的文件,比如.c,.h的文件,进行读取,并对内容进行分析,按照C语言的规则,将其转换成系统可以执行的二进制文件。
其本质在于对文件的读入,分析,及处理。这些操作,C语言都是可以实现的。
所以用C语言来做C语言的编译器是完全可行的。

但是,历史上的第一个C语言编译器,肯定不是C语言写的,因为在没有编译器时,无法把C语言转换成可执行文件。
只要有了第一版其它语言的编译器,就可以用C语言写编译器了。
事实上,目前大多数的C语言编译器,都是用C语言写的。

⑶ 是不是只要设定语法和对应的编译器就可以创造属于自己的语言,我在学c语言突然想问问我的想法对不对

C语言需要编译器编译成汇编码,你要自创语言,就要自己写编译器,其实原理也挺简单,无非就是正则匹配,匹配到指定语句,然后解释该字符串,生成对应汇编码,不过一个完善的语法就比较麻烦,牵扯到文件导入,文件连接等等非常复杂。。。。一个简单的变异比如匹配到 c=a+b,无非就是&a处的数据导入CUP的A寄存器(指令是mov),&b处的数据导入CPU的D寄存器,然后执行加法指令add eax,edx,然后 再把答案(在eax中)送到&c的位置。。。。
高级语言都是先编译成汇编,然后汇编编译机器码,汇编变机器码这一部你就不用管了,用个正确的汇编编译器即可,你要发明自己的语言是实现你的语法到汇编的解释过程。。。。

⑷ C语言的编译器和普通应用程序有什么区别吗

当然有区别啊,运行方式也不一样。
考虑到你可能不是从事开发工作的人,我就不用专业术语解释了,解释如下:

编译器:将使用开发语言,人工书写的逻辑、函数等,俗称“代码”,翻译成机器能理解的语言,机器只能理解二进制语言,即:0和1。比如:125这个数字在计算机中存储就是“01111101”。具体换算方法要参照计算机书籍中了。

普通应用程序:是使用开发语言,人工书写的逻辑、函数等,俗称“代码”,通过编译器翻译成机器能理解的语言之后,再进行封装打包成:例如exe文件之类的可执行文件,让计算机通过自己的方式显示出来并与用户进行交互。

它们之间最大的区别的,就是:
编译器可以直接与“用户开发的代码”和“计算机”进行数据交互的;
普通应用程序相当于是通过编译器和计算机进行数据交互。

⑸ 每个编译器都不一样么 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设置不同。

⑹ C语言数据类型所占字节是和运行的机器位数有关还是编译器有关

1)C语言一般指的是ANSI C的标准,对应的处理器分别是32位和64位的。
2)类型分为内置类型和自定义类型(非内置类型)
内置类型指的是无需声明就可使用的类型,比如char,double,int等。
自定义类型指的是使用前必须声明的,如struct StructName{};结构类型,int a[5];数组类型以及enum Color{};枚举类型等。未经声明的类型不可使用
3)ANSI C只对内置类型的大小进行了规范:
char |double| folat |int |long int| pointer
64bits 1 8 4 4 8 8
32bits 1 8 4 4 4 4
从上表可以看出,对于前三者,大小是统一的,只有long int 和pointer(指针)在不同的机器上占用了不同的大小。他们的规则是,long int和pointer的大小等于机器位长(8位一个字节).最后说明一点,unsigned的关键字和类型组合和该类型的大小相同,因为有符号和无符号只对编译器有效,机器对他一无所知。

⑺ c语言在不同系统中有区别吗,在哪,还有人说什么编译器不同,到底是系统原因还是编译器

在不同的系统中C语言没有区别,有区别的是不同的编译器编译后的机器码不同,就是说函数的C语言的底层实现可能不同,但是C语言的函数作用相同。与系统的关系也一样,系统不同实现方法不同,但是作用相同。
使用不同的编译器,不同的系统,程序运行结果是相同的

⑻ C语言和c语言编译系统有什么区别两者是包含关系吗

无区别,只不过编译器不一样罢了。因为不同的cpu构架有不同的指令集。而嵌入式基本使用RISC结构的cpu,需要使用pc上的cpu编译出在能嵌入式cpu上运行的二进制程序。这叫交叉编译。pc上的程序不可以直接在其他cpu上运行,需要重新编译。 因为编译器不一样,执行的c语言标准就跟编译器相关。 管理内存映射,设置中断系统等在pc上也有,不是嵌入式的专利。 只是做嵌入式里的界面、网络、文件编程的话,跟pc上几乎没有差别,因为有操作系统罩着。如果开发驱动程序,就要求你对所使用的cpu和板子的结构很了解,也就是看得懂硬件手册即可。 另外嵌入式环境同pc的差别 如cpu位数、硬件资源紧缺等是需要程序员考虑的

⑼ C语言中,运算符的优先级和结合方向与编译工具有关吗在不同编译工具下是如何处理的呢

首先优先级和结合性与编译器本身无关,只和标准有关

其次,你这里的问题和优先级以及结合性无关,这是求值顺序问题,而C语言中没有规定求值顺序,故实际上是无解的

http://bbs.csdn.net/topics/370153775

阅读全文

与c语言中的用法和编译器有关系吗相关的资料

热点内容
安卓手机最好用什么软件 浏览:352
编译原理lr分析讲解 浏览:143
单纯程序员哭了 浏览:336
男生设计app哪个好 浏览:765
梯形图是编译还是解释执行 浏览:473
录屏好用的app哪个好用 浏览:637
一念逍遥新服务器怎么看 浏览:92
移动app的信用充话费在哪里 浏览:502
单片机接传感器 浏览:74
免费pdf工具 浏览:382
pdf加密一机一码 浏览:602
怎么把百度云资源压缩 浏览:458
不会数学英语如何编程 浏览:88
如何能知道网站服务器地址 浏览:648
程序员月薪5万难吗 浏览:138
如何评价程序员 浏览:803
云虚机和服务器的区别 浏览:403
广西柳州压缩机厂 浏览:639
arm开发编译器 浏览:833
51单片机的核心 浏览:746