【Linux C 程序设计】(一)基础知识
来源:互联网 发布:淘宝客佣金查看 编辑:程序博客网 时间:2024/04/30 08:22
1.goto语句
#include<stdio.h>int main(){ printf("Begin ....\n"); // goto Go; printf("Continue ....\n"); Go: printf("End ....\n");}
输出结果
[root@localhost workplace]# ./goto Begin ....Continue ....End ....
注意:goto语句程序本身也要运行。
2.优化控制结构
a.使用替换程序中的乘除法
加减法只占一个时钟周期,位运算和移位操作的执行速度和加减法接近。乘法需要5到6个时钟周期,除法执行最慢,大约需要50个时钟周期。
乘法都可以使用移位指令代替 a*13 = a<<3 + a +a<<2。除法则只有2的幂才能使用。
b.常量折叠
将常量结果计算好,但不易于阅读
c.使用数学公式代替
d.存储问题
x=x+1;
执行过程分三步
x+=1;
执行过程只有两步
e.分支优化,改变判断顺序
将判断可能性比较大的放在前面,减少判定次数
f.循环优化,一次性计算
对于循环中一次性计算,应当将其放置到循环外面
h.调用函数很费事,最后减少调用
i.不要将循环算子等高频率使用的变量设置为全局变量或者静态变量
3.全局变量,局部变量
局部变量存储在函数的栈上,栈消失,变量也消失
全局变量存储在固定的存储区
对于全局变量来说,如果一个全局变量未被初始化,其初始值有编译器自动设置为0。而局部变量存储在内存的堆栈中,定义之后,不会将其初始化为0,而是使用其占用内存空间原有的值,是一个随机值。
4.全局变量
a.c
#include<stdio.h>double a;void f(){a=-0.0;}
b.c
#include<stdio.h>void f(void);int a = 123;int b = 121;int main(){ f(); printf("a=%d,b=%d\n",a,b); return 0;}
在VS2010上运行结果为
Linux中结果
理由:运行f后,将4字节的a变成8字节,将b的值也清空
5.可变参数
int printf(const char* format,...);
0 0
- 【Linux C 程序设计】(一)基础知识
- linux程序设计入门----基础知识:linux下C语言编程基础知识
- Linux程序设计入门--基础知识
- Linux程序设计入门--基础知识
- Linux下程序设计 (C 语言) 一
- Linux C程序设计-emacs使用一
- linux C/C++程序设计(一) 环境搭建
- 1)Linux程序设计入门--基础知识
- 1Linux程序设计入门--基础知识
- 1、Linux程序设计入门--基础知识
- 复习linux C编程(一)之 linux基础知识
- linux C/C++程序设计(一) 环境搭建二
- C、C++基础知识一
- Shell程序设计(一)—基础知识
- Linux基础知识(一)
- linux基础知识总结一
- Linux 基础知识(一)
- linux基础知识(一)
- 这么认识递归,你会恍然大悟!如果你已经很透彻理解递归请飘过~
- 11.17行情分析
- 数据存取
- Photoshop脚本 > 打开文件夹中所有文档
- bash系统变量
- 【Linux C 程序设计】(一)基础知识
- IAR软件不能使用Go to definition ...功能
- Verilog HDL编写SPI Slave通信
- POJ 3160 Father Christmas flymouse 强联通
- 炮兵阵地 压缩DP
- unity之光源,材质和预设体
- ios导航栏,状态栏自定义设计相关参数 (转)
- Photoshop脚本 > 另存当前文档
- NetBeans的(默认)快捷键