我爱编程

Xcode创建C项目以及C语言的编译流程介绍

2016-10-19  本文已影响228人  夏广成

用xcode新建c/c++ 项目,在osx application 中选择command line tool,点击next即可


C

在c语言当中,如果想在程序中调用外部的命令,可以使用system函数,使用这个函数需要引入stdlib.h头文件

#include <stdio.h>
#include <stdlib.h>
int main(){
    printf("aaa\n");
    system("ls");
    printf("bbb\n");
    return 0;
}

上面代码中的命令ls,主要是显示命令运行目录下的文件以及文件夹,那么也可以将ls替换为其他的c程序,比如

system("./a.out");

编译过程

c源码在编译的时候,大致经过了一下几个流程

gcc -E hello.c -o hello.i
 gcc –S hello.i –o hello.s
 gcc –c hello.s –o hello.o

gcc默认使用动态库,就是在运行时加载库。还有一种是静态库,静态库在编译阶段就已经将库加载到执行文件中,一般来说会比较大。我们可以在linux通过ldd命令,mac中通过otool命令,查看可执行文件需要的动态库

//Linux
ldd a.out
//Mac
otool -L a.out
image.png

C++

c语言用1和0表示真和假,c++引入了boolean类型,有了true和false。由于c++兼容了c语言,因此c++也可以用1和0表示真和假。因此在
if(x=3){...}这样的一个表达式中,x是被赋值为3,而3是个非0的数,也就是真,就会执行表达式的内容。


// 头文件iostream 对cout对象进行了说明
// #开头表示预处理命令
#include <iostream>
// 如果没有下面这行命名的话,那么cout就需要这样写:std::cout     那么endl就需要写成:std::endl
using namespace std;
// main 函数的规范是返回int类型
int main(){
// << 插入符  
// endl  换行标记
// cout 是类库当中定义的对象
    cout << "Hello" << endl;
    cout << "World!" << endl;
    return 0;
}

附录
阮一峰博客《编译器的工作过程》

上一篇下一篇

猜你喜欢

热点阅读