A. C语言编译器会编译改变过的代码,而不会编译没有改动的代码。 我想知道它是怎么判断程序是否有呗修改过的
编译器要记录你的编译生成文件,比如obj、exe等的生成日期,发现与相关的文件如.c源文件、obj等日期旧时则选择对此部分重新编译。
特别地,它记录所有相关文件,比如你新修改了某头文件.h,编译系统会逐一比较所有使用这个.h文件的编译结果,如果发现时间旧了就重新编译它们。
B. c语言编译器如何运行
编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。
1、预处理阶段:
主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)
2、汇编阶段:
插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。
3、编译阶段:
将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。
4、链接阶段:
在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。
C. 简单描述编译的几个处理步骤
编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、语义分析、代码优化、存储分配和代码生成等六个相继的逻辑步骤。这六个步骤只表示编译程序各部分之间的逻辑联系,而不是时间关系。
编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行。在确定编译程序的具体结构时,常常分若干遍实现。对于源程序或中间语言程序,从头到尾扫视一次并实现所规定的工作称作一遍。每一遍可以完成一个或相连几个逻辑步骤的工作。
(3)c加加编译程序怎么修改语言扩展阅读:
对于c编译程序来说,其语言的特点如下:
1、c语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护,而且表现能力和处理能力极强。
2、c语言具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
3、由于c语言实现了对硬件的编程操作,因此集高级语言和低级语言的功能于一体。它既可用于系统软件的开发,也适合于应用软件的开发。
4、此外,c语言还具有效率高、可移植性强等特点。因此它广泛地移植到了各类各型计算机上,从而形成了多种版本。
D. C语言程序编译以后一直显示stdio.h里报错,为什么,怎么修改求大神!
检查
#include
<stdio.h>
以前的
程序,错在前。
-----------------------------------------------
c
程序,扩展名
用
.c,
不要用
.cpp
c++
程序,扩展名
用
.cpp
不要用
.c
c++
程序
若用
stdio.h
时,先要含
c++
的头:
#include<iostream>
using
namespace
std;
#include
<stdio.h>
E. 哪款c语言编译程序支持编译中文
g++支持unicode,但是windows下并不采用unicode编码,而是根据操作系统本地语言采用gb2312等编码,所以输出中文也是乱码的,dev c++采用的就是g++编译器。
vc 里新建工程的话,选择win32 cosole application,就是控制台应用
win32 application是windows程序(有GUI)
MFC application是基于MFC的GUI应用程序,其他的你以后如果学到自然会了解
如果是文件的话,c++ source file,表示cpp文件(c++源文件),c++ header file表示头文件,
如果只有单个文件的,新建c++ source file就运行时候直接会帮你建立一个工程,然后编译运行。
如果是2005 2008则必须新建一个工程,然后再工程中添加源文件和头文件
F. 怎么把C语言程序改为C++程序
C语言程序其实就是C++程序,因为C++兼容了C。
C++中输入语句用cin代替scanf,cout代替printf,但是C++也识别scanf和printf
主要区别是C++扩展了C,有面向对象。
若要改,可以:
头文件
#include
"stdio.h"
->
#include
<iostream>
using
namespace
std;
cin代替scanf,cout代替printf
G. 用C语言编译程序:删除C++源程序中的多余空行及注释文字
代码如下:#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>void
main()
{
FILE*
fp
=
fopen("test.cpp",
"r");
if(NULL
==
fp)
{
return;
}
fseek(fp,
0L,
SEEK_SET);
char
char_line[1024]
=
{0}; int
totoalline
=
0;
printf("/****************原始文件*************************/\n");
while(1)
{
fgets(char_line,
1024,
fp);
int
size
=
strlen(char_line);
if(0
>=
size)
{
break;
}
printf("%s",
char_line);
memset(char_line,
0,
1024);
totoalline++;
}
printf("/****************原始文件结束,共%d行*************/\n",
totoalline); fseek(fp,
0L,
SEEK_SET);
totoalline
=
0;
FILE*
fp_to
=
fopen("result.cpp",
"w");
printf("\n\n/****************去除冗余后的文件*****************/\n");
while(1)
{
fgets(char_line,
1024,
fp);
int
size
=
strlen(char_line);
if(0
>=
size)
{
break;
}
int
i;
for(i=0;
i<size-1;
i++)
{
if('/'
==
char_line[i]
&&
'/'
==
char_line[i+1])
{
break;
}
}
if(0
!=
i)
{
bool
flag_tab
=
0;
for(int
j=0;
j<i;
j++)
{
if('\t'
!=
char_line[j]
&&
'
'
!=
char_line[j])
{
flag_tab
=
true;
break;
}
}
if(flag_tab)
{
char*
ret
=
(char*)malloc(sizeof(char)*(i+1));
ret[i]
=
0;
memcpy(ret,
char_line,
i);
printf("%s\n",
ret);
//写入到新文件
fwrite(ret,
sizeof(char),
i,
fp_to);
fwrite("\r\n",
sizeof(char),
2,
fp_to);
free(ret);
totoalline++;
}
}
memset(char_line,
0,
1024);
}
printf("/****************去除冗余后的文件结束,共%d行*****/\n",
totoalline);
printf("详情查看resutl.cpp\n");
fclose(fp);
fclose(fp_to);
}
H. c语言编程软件如何变中文模式
1、直接在微软官网上下载最新的vc,vs中文版,就可以得到中文模式的C语言编辑器。
2、如果是学C语言,建议使用TC,或者MyTC。原因很简单,集成的IDE会造成很多依赖,养成很多不良的编程习惯,对于新手来说,TC已经很足够了。另外,使用什么IDE,跟支持不支持中文没关系。编程的时候最好尽量不要使用中文来命名。学纯C语言,还是使用TC吧,VC集成了太多VC方面的东东,会很困惑,看不清楚真正的C语言。
I. C语言怎么编译才能显示中文
主要还是看你的编译器是否支持了。
我用dev-cpp,觉得不错。你试试。
J. c语言源文件未编译怎么解决
解决方法如下:
操作设备:戴尔笔记本电脑
操作系统:win10
操作程序:DEV-C++ v2.01
1、首先我们打开DEV-C++,点击菜单栏中的“工具”,点击“编译选项”这个选项,打开编译选项对话框。