2010.3.25

1>添加环境变量    export PATH = $PATH:`pwd`

    如果此时关闭终端,所设的环境变量将失效;另外可以直接修改用户目录下的.bashrc文件,接着关闭终端重启即可。

2>GCC 使用

    GCC的编译流程分为4个步骤:1】预处理(PreProcessing)2】编译(Compiling)3】汇编(Assembling)4】连接    

    (Linking);

    1.预处理,生成.i的文件[预处理器cpp]
    2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]
    3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
    4.连接目标代码,生成可执行程序[链接器ld]

 
    $gcc -E test.c -o test.i                              -E激活预处理

 

     检查语法错误,并生成汇编文件                      -S激活预处理和编译,就是指把文件编译成为汇编代码。

     $gcc -S test.c -o test.s                             对于研究程序效率是非常有帮助的。

3>Makefile

     变量定义的两中方式

     递归展开方式 VAR= var    可以向后引用变量但不能对变量进行任何扩展 如 CFLAGS = $(CFLAGS) -O就成了死循环

     简单方式  VAR:=var         会在变量的定义点按照被引用的变量的当前值展开 如CFLAGS=cc; CFLAGS:=$(CFLAGS) -O就不会造成

                                           死循环。

     用?=定义变量                  查找前面是否已定义次变量 如 dir:=/foo/bar     

                                                                                      FOO?=bar

                                            含义是,如果FOO没有被定义过,那么变量FOO的值就是bar,反之,这条语句将什么也不做,其等价于:

                                            ifeq($(origin FOO),undefined)

                                            FOO = bar

                                            endif

4>autotools工具的使用

   

 

5>编写程序,从键盘上输入2个整数,分别计算出它们的商和余数,输出时,商数要求保留2位小数,并对第3位进行四舍五入。

    int main(void)

    {

          int x,y;

          scanf("%d,%d",&X,&y);

          printf("%5.2f",(double)x/y,x%y);

          return 0;

    }  

     这里我们要弄清楚一个原则:当一个运算符两端的运算量类型不一致时,按“向高看齐”的原则对“较低”的类型进行提升。

这道题目如果我们改写成下面的语句:

           2】printf("%5.2f",(double)(x/y,x%y));

将会发现运算结果发生了变化。其原因是因为(double)x/y先将x强制转换为double型,接着x/y根据向高看齐原则,x/y为double/double;再看2】中的(double)x/y,是先将x/y取整,再将所得到的整数强制转换为double型,因此我们在处理数据时要十分小心使用括号。  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值