❶ 执行C语言一定要先编译么,不可以直接执行么
不可以直接执行
有些IDE看起来有直接执行的按钮
实际上 这些直接执行的
也是经过了后台的编译 链接的。
C文件无法被执行
只能生成exe后 才可以执行的。
❷ 如果将一个函数的声明写在头文件中,程序中不再进行函数声明,程序是否能正确编译连接执行
你要是知道包含头文件是什么意思就理解了
比如
// test.h
int test();
//test.c
#include "test.h"
void main()
{
test();
}
编译之后,实际上市
//test.cpp
int test();
void main()
{
test();
}
就是说你头文件的东西统统会导入到包含它的文件
❸ 头文件不参加编译,为什么还要包含到源文件中
头文件通常需要参加编译,要包含到源文件中。
当然,你可以 把 头文件独立出来,改名为 .c (或 .cpp), 不包含到 源文件中,与源文件分开编译,编成 .obj 后 再链接也可以。
假如 某程序,确实不需要 某个头文件,那么 就没有必要 包含进去。例如,程序里 没有用到 三角函数,开方 之类 的 数学 库 函数,你就 不需要 写 #include <math.h>。例如,程序里 没有用到 time() 之类的 时间库 函数,你就 不需要 写 #include <time.h>。
❹ C/C++ #include<stdio.h>等等 头文件 参加编译 大部分的声明 都是用不到的,效率太低了吧
只是在编译的时候消耗时间,生成的运行文件也只会包括涉及到的函数。
❺ 关于c语言头文件编译和运行的问题
1、只要在程序开头加入#include<头文件名>,在编译过程当中,头文件自动会被添加到源文件当中一起进行编译。
2、编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件。
❻ 头文件需要编译么
静态库会在编译的时候会插入到原代码中一起编译。不用另行编译。
❼ C语言,头文件不包含也能编译通过
turbo
c
2.0编译系统中如果用到输入输出函数是可以不写,用到其他函数就要写对应得头文件,但是turbo
c
3.0中都要写。
你最好是写起嘛,这是一种规范,反正又不累!
❽ C++编程时关于头文件的包含如何运行问题
头文件自始至终不进行编译,当c++编译时(即compile时)头文件展开到源文件中,对源文件中的函数和变量进行声明,编译正确后产生与源文件同名扩展名为.obj的二进制文件,然后链接时(即link时)编译器对生成的二进制文件进行连接并生成.exe文件。现在的集成开发环境中,如vc6.0中,提供编连(即bulid)是将编译和连接一键化了,但是编译器还是执行以上2个步骤的。
同理vc自带的头文件也是这样,不过是提供了二进制文件,在vc++6.0环境下vc98这个目录下有微软封装好的二进制文件,微软提供的函数定义已经编译了,在我们编译时,就不在进行编译了。
你的程序中,当编译时,会将student.h分别展开到main.cpp和student.cpp中,生成main.obj和student.obj(这个是编译student.cpp生成的),然后连接两个obj二进制文件,和#include <iostream>和#include <string>微软提供的函数定义所在的二进制文件,是lib扩展名的在vc98这个目录下,生成一个exe程序,这样你所谓的编译完成!!
❾ 最近刚接触c++,我已经有了一些头文件和对应的cpp文件,请问怎么在项目里编译并运行起来
如果用的是CFree或VC6
F5一键编译
如果你用的是VS或DevCpp
创建一个项目
在 解决方案管理器 中 项目 右键添加源代码、头文件
调试-启动(VS默认按键不是F5)
❿ 头文件放到C里面可以运行吗我在看一段头文件,它的动作和我的需要是一样!这里就产生了一个问题,只要编
看LZ的描述应该只是静态链接,如果已经得到可执行文件(如.exe),那么不需要任何额外的源文件(例如.c)和库文件就可以运行。编译时可能需要头文件。包含头文件(即复制头文件的文本内容来替换#include所在行)的作用是在不同编译单元(源文件)间重用被重复的代码,而这里最主要的重复代码就是声明。声明可以引入一个符号,让编译器知道在源代码或者库文件中存在某些符号的定义,以便编译器能够编译引用了外部符号的源代码而不产生未定义标识符的编译错误。编译器生成目标文件(如.obj)时,在目标代码对应位置留下占位符以供链接器使用。链接器链接(替换占位符、计算偏移等)这些文件(还可能有静态库文件,如.lib)生成静态库文件或可执行文件。
如果没有头文件,那么编译器可能会遇到未定义的标识符产生编译错误;如果头文件中声明的符号不在源文件中且找不到包含这些符号定义的库文件,则编译可能通过但链接错误。这些错误情况下都无法生成可执行文件,因此无法运行。
对于每个编译单元,只要编译可以通过,那么去除头文件是没问题的。
此外,一般编译环境已经配置好了标准库,所以不是使用第三方库的话,只要能够通过编译,且不在多个编译单元内重复定义已有符号的话一般都能够成功链接。
====
[原创回答团]