A. C语言编译怎样连接lib文件,请讲解连接的原理,
广义的代码编译过程,实际上应该细分为:预处理,编译,汇编,链接。
预处理过程,负责头文件展开,宏替换,条件编译的选择,删除注释等工作。gcc –E表示进行预处理。
编译过程,负载将预处理生成的文件,经过词法分析,语法分析,语义分析及优化后生成汇编文件。gcc –S表示进行编译。
汇编,是将汇编代码转换为机器可执行指令的过程。通过使用gcc –C或者as命令完成。
链接,负载根据目标文件及所需的库文件产生最终的可执行文件。链接主要解决了模块间的相互引用的问题,分为地址和空间分配,符号解析和重定位几个步骤。实
际上在编译阶段生成目标文件时,会暂时搁置那些外部引用,而这些外部引用就是在链接时进行确定的。链接器在链接时,会根据符号名称去相应模块中寻找对应符
号。待符号确定之后,链接器会重写之前那些未确定的符号的地址,这个过程就是重定位。
B. c语言 求SUM代码
#include <iostream.h>int main()
{
int a=0;
long sum=0;
cin>>a;
sum=(1+a)*a/2;
cout<<sum<<endl;
return 0;
} 终于AC了,你们忘记负数了。。。 #include <stdio.h>
#include <math.h>
int main()
{
int a = 1000;
while(scanf("%d",&a) != EOF)
{
if(abs(a)>10000) continue;
if(a <= 0)
{
a = abs(a);
printf("%ld",-(a*(a+1)/2-1));
break;//Here is important for web compiler
}else
{
printf("%ld",a*(a+1)/2);
break;
}
}
return 0;
} 还有求和记得用求和公式
C. 怎样用记事本编写c语言程序 并编译
1 先在系统变量或用户变量中添加MSDev\Bin 和 \VC98\Bin路径。
设置include路径:INCLUDE=...\VC98\Include
2 开一个命令行窗口,输入 cl 看看能不能找到路径。
3 下面用记事本新建一个hello.c程序如下
#include<stdio.h>
int main()
{
printf("Hello world!!");
return 0;
}
4 编译:cl hello.c 可以看到生成了hello.obj和hello.exe,运行生成的hello.exe,成功!
追问
//先在系统变量或用户变量中添加MSDev\Bin 和 \VC98\Bin路径。、
这句话能够解释得再详细一点吗?
追答
1 简单的方法是在命令行窗口中每次执行以下语句:
SET PATH=%PATH%;...MSDev\Bin;...\VC98\Bin
SET INCLUDE==...\VC98\Include
你可以写成批处理,每次新开命令窗口运行一下就行。
其实你的vc98\bin目录下有一个VCVARS32.BAT,直接运行一下就可以。
2 在 桌面-》我的电脑上点右键菜单,选择《属性》,弹出的窗口上选择《高级》,里面有个《环境变量》设置按钮,可以修改路径等信息,这样改就可以一劳永逸。
D. 怎样将C语言编译成汇编
编译完了,反汇编。
你自己学汇编语言,把实现改成汇编,算法可能要调整。
有一个在线编译器,可以直接编译成汇编:
很好用。
E. C语言里,函数sum怎么用
在程序前面
要引用头文件 如:#include<math.h>
然后就和调用其他滴函数方法是一样滴
F. 如何编译并运行C语言程序
1、创建一个文件名为main.c,然后用任意一个款你熟悉的文本编辑软件,比如说记事本,在里面输入下面的代码,记住,要用文本文件编辑软件,不能用word的。
c语言小游戏实现原理
1、二维数组实现棋盘
二维数组,用两个for 循环,随便输出一个固定符号做棋盘,如 *
2、判定玩家
设计一个计步变量step, 每走一步 step++, 则玩家=step%2+1;
3、判定输赢(重点)
设计方向数组 dircX[4] ,dircY[4],因为如果要判断是否练成五子,只有1竖着2横着3斜下4斜上
竖着的话就是 x-1,y不变
横着的话就是x不变,y+1; 斜下: x+1,y+1; 斜上 x-1;y+1
这样你就可以赋值dircX={-1,0,1,-1} dercY={0,1,1,1}
每当玩家落下一子,就全局判断每个子的四个方向有没有第二子,如果有,循环判断有没有第三子(利用 x+=dircX[1]),直到五子完成,结束。
G. sum在c语言中的用法
在C语言中没有sum这个保留字,换句话它在C语言中只能算是一个标识符,没有特殊的语法功能。
一般来说C语言的标识符,有两个基本的使用原则。
1、要符合语法要求,C语言中规定,标识符有数字、字母、下划线(_)组成,而且第1符号只能为字母或者下划线。
2、标识符的命名,尽量便于阅读。如问题中的sum用于表示两数之和,就容易理解。
H. 怎样用cmd编译C语言程序文件
首先需要安装有一个编译器并设置好环境变量,如 vc或gcc,以下是命令
gcc:
gcc -c test.c -o test.o
gcc test.o -o test.exe
vc:
cl /c /TC /O1 /MD test.c
link test.obj
编译gui程序时,连接还需要指定静态库文件.
I. 怎样用c语言编译
C编译的整个过程很复杂,大致可以分为以下四个阶段:
预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
汇编阶段将汇编语言翻译成机器指令。
链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
J. Sublime text3怎样才能进行c语言的编译与运行呀
安装Sublime Text3编辑器
SublimeText3编辑器的下载地址为:
编写批处理文件:
编写一个执行编译、连接命令的批处理文件,保存到VC编译器的目录中。该目录一般为:
D:ProgramFilesSublime Text 3 VC2008。
该批处理文件的内容如下:
@echo off
rem 请根据 VC2008文件夹的目录修改下面的 VC_Dir 环境变量!
set VC_Dir=D:ProgramFilesSublime Text 3VC2008
set include=^
%VC_Dir%include;^
%VC_Dir%PlatformSDKInclude;^
%VC_Dir%atlmfcinclude;^
%include%
set lib=^
%VC_Dir%lib;^
%VC_Dir%PlatformSDKLib;^
%VC_Dir%atlmfclib;^
%lib%
set path=^
%VC_Dir%in;^
%PATH%
set VC_Dir=
echo on
@nmake
由于这里使用nmake工具执行编译命令,因此你需要为你的每个工程建立一个Makefile文件。关于Makefile文件的资料,可以参考罗云彬大哥的《Windows环境下32位汇编语言程序设计》一书中的示例。随后我会发搭建32位汇编语言环境的方法。事实上C语言版本就是它的衍生品,使用Sublime Text3要比罗哥推荐的EditPlus编辑器漂亮和好用很多。
配置Sublime Text 3编译系统
创建一个名为C++.sublime-build的文件,复制到编辑器的用户自定义配置文件夹内,该目录一般为:
C:Users用户名AppDataRoamingSublimeText 3PackagesUser
即编辑器Preferences/BrowesPackages...菜单打开的目录下的User文件夹中,如果此文件夹不存在,可以自行创建。根据你的批处理文件所在目录修改C++.sublime-build文件中的cmd路径,本例中为:
D:\ProgramFiles\Sublime Text 3\VC2008\000MyBuildVC2008.bat。
注意路径中使用的是双斜杠。
C++.sublime-build文件的内容如下:
{
// 请根据你的批处理文件所在目录修改下面的路径:
"cmd" :["D:\Program Files\Sublime Text 3\VC2008\000MyBuildVC2008.bat","/Fo${file_base_name}", "/O2", "${file}"],
"file_regex" :"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir" : "${file_path}",
"selector" :"source.c, source.c++",
"encoding" :"cp936",
"variants" :
[
{
"name" : "Run",
"cmd" : ["CMD", "/U","/C", "CL /Fo${file_base_name} /O2 ${file} &&${file_base_name}"]
}
]
}