C语言语句
1.空语句:当一个if或者while判断部分能完成工作,空语句可以用来表示if或者while内的空循环体

if(a == b );

2.gcc编译器

 //程序的编译过程:
 //        预处理:pre-processing
 //        编译:compiling
 //        汇编:assembling
 //        链接:linking

 //预处理阶段:*.c或者*.C文件会预处理成*.i文件 ,这个阶段主要处理#ifdef  #include  #define
 命令:gcc -E test.c -o test.i

 //编译阶段 :输入*.i文件,编译生成汇编文件*.s
 命令:gcc -S test.i -o test.s

 //汇编阶段 ,将*.s 变成*.o二进制文件
 命令:gcc -c test.s -o test.o

 //链接阶段:将*.o二进制文件汇聚成一个可执行的文件
 命令:gcc test.o -o test

 //上述过程可以简述为:
 命令:gcc -c test.c -o test.o
       gcc test.o -o test
 或者:
             gcc test.c -o test 

3.gcc常用选项;

 //同时编译多个*.c文件
 命令:gcc -o test  file1.c file2.c file3.c
 //三个文件编译后生成test可执行文件,注意三个文件只能有一个允许有main函数,如果是仅仅编译目标文件,那可以没有main函数。

4.gcc最基本的用法:

 //-c 只编译,不连接成可执行文件
 //-o output_filename 确定输出的文件名
 //-g 产生调试器gdb必须的符号,要对源码进行调试,必须在编译的时候加这个参数
 //-O 对程序进行优化编译连接,但是编译会相对慢一些
 //-O2 比-O更好的优化编译,但是编译连接会更慢
 //-Wall 输出所有警告信息
 //-w 关闭所有警告,建议不要使用此选项
 //IDirname ,将名为IDirname的目录加入到程序头文件目录列表中,预处理阶段使用的选项

 //C语言头文件会被大量使用,通常是 Header files 和定义文件 definition files 组成。
 //头文件包含函数原型声明,常量定义的文件,用于保存程序的声明
 //定义文件用于保存程序的实现implementation。
 //头文件以.h为后缀
 #include<stdio.h>   //去系统预设的包含文件目录去找                 一般是系统提供的头文件    系统预设的包含目录为 /usr/include
 #include "stdio.h"  //先到当前目录去找,再到指定的IDirname去找     自己写的一般放在当前目录,大型程序会统一放在一个目录

 //-L dirname 将名为dirname的目录加到程序库文件的搜索目录中,在连接过程中使用的参数。

5.系统提供的库分为两种:静态库和动态库
gcc默认的库文件存放目录 /usr/lib

6 问题:
1.写出float与0比较的语句

 //由于float精度的问题不可写成:
 if(x == 0.0);
 if(x != 0.0);
 //应该写成:
 if(x >= -0.00001 && x <= 0.00001);

 //不可将浮点型变量用 == 或者 !=比较,设法转换成 <= 和 >=

2.switch 条件必须是整型和char

3.for(;1;)是一个死循环

Linux C 程序 空语句-gcc编译命令(SIX)的更多相关文章

  1. GCC 编译命令

    今天突然被同事问道一个GCC编译命令为的问题,感觉对相应内容生疏了,赶紧整理下相关内容,梳理下相关知识. GCC命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再 ...

  2. GCC编译命令常用选项

    GCC是GUN Compiler Collection的简称,除编译程序外,还包含其他相关工具.GCC可将高级语言编写的源代码构建成计算机直接执行的二进制代码.GCC是Linux平台下最常用的编译程序 ...

  3. Linux——【转】gcc编译与gdb调试简要步骤

    原文:gcc编译与gdb调试简要步骤 一.Linux程序gcc编译步骤: Gcc编译过程主要的4个阶段: l 预处理阶段,完成宏定义和include文件展开等工作:(.i) l 根据编译参数进行不同程 ...

  4. Linux(CentOS 7)使用gcc编译c,c++代码

    安装gcc: 1.使用 yum -list gcc* 查询 centos 官方gcc的所有包: 可安装的软件包 gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_6 ...

  5. Linux环境下使用gcc编译,gdb反汇编C语言程序

    使用虚拟机 VMware Workstation 10 Linux环境:Ubuntu 14.04 LTS Server amd64   我把过程截图如下. 首先是hello world程序: 备注: ...

  6. gcc编译命令行依赖库的指定顺序

    gcc链接过程中定义了三个集合:可重定位目标文件集合E.未解析符号集合U和已定义符号集合D,链接基本流程如下: 1) 按命令行指定顺序依次处理每个目标文件和库文件: 2) 如果为目标文件,将其加入集合 ...

  7. Linux 设置程序开机自启动 (命令systemctl 和 chkconfig用法区别比较)

    之前在Linux centos 7 上安装了apache 和mysql,当时并没有设置开机自动启动. 最近又重新练习网页,每次开机总是要手动启动httpd和mysqld,不方便,就想设置成开机自动启动 ...

  8. gcc编译命令总结

    一步到位编译:gcc hello.c -o hello 预处理 -E (.i) 编译 -S (.s) 汇编-c (.o) 连接-o 预处理 gcc -E hello.c -o hello.i -E:仅 ...

  9. gcc编译命令

    g++ demo.cpp -o demo.exe

随机推荐

  1. 注入限制绕过<转>

    突然想我们是否可以用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是针对AND与“'”号和“=”号过滤的突破,虽然有点进步的地方,但还是有一些关键字没有绕过,由于我不常入侵网站所以 ...

  2. js原生瀑布流

    背景: 1.在移动端开发,jq文件是显得非常庞大的,所以所有效果尽量用HTML5和原生js实现. 2.本次瀑布流是固定列数,采用非浮动的另外一种瀑布流思想实现的. 3.本次数据来源是json接口 4. ...

  3. CircleProgressBar

    http://www.eoeandroid.com/thread-333984-1-1.html CircleProgressBar.rar

  4. POJ 3692 最大独立集

    题意:有G个女生,B个男生,所有的女生都互相认识,所有的男生都互相认识,还有N对男女,他们互相认识. 问从中选出最多的人数,是的他们全部互相认识. 思路:这道题的构图很巧妙,对于他的补图构图,对于所有 ...

  5. C#_ajax_demo

    使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=&qu ...

  6. Eclipse插件-easy-explore-1.0.4

    下载地址:http://sourceforge.net/projects/easystruts/files/Easy%20Explorer%20for%20Eclipse/easy-explore-1 ...

  7. String使用equals方法和==分别比较的是什么?

    equals方法和==的区别   首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用.这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = &quo ...

  8. Maven学习小结(一 初探)

    1.下载Maven,解压并设置到环境变量中 https://maven.apache.org/download.cgi 需要先设置“JAVA_HOME”,否则报错: 之后查看Maven版本成功: 1. ...

  9. javaBean为什么要实现Serializable接口?

    引用:http://jzinfo.javaeye.com/blog/519470 Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成一组byte,这 ...

  10. Linux忘记mysql的root密码的解决办法

    1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...