linux C杂记(一)

1、linux常识汇总:

GNU=GNU‘s Not UNIX,为了区别于UNIX系统;

Linux是类UNIX操作系统,免费、开源是其最大的特点,是多用户多任务且符合POSIX标准的操作系统;

目标:非私有的、开放的操作系统;

条款:GPL=General Public Licence;

UNIX与Linux区别:UNIX大多与硬件配套,而linux可运行在多种硬件平台上;

1991年由Linus Torvalds开发,1994年发布Linux1.0;

Linux2.6.10:2是主版本号,6是次版本号,偶数表示是稳定版本,奇数表示是不稳定版本,10表示第10次修订;

Linux的发展方向:服务器领域(主要)、嵌入式系统领域、桌面应用方面;

Linux的五大支柱:UNIX OS、MINIX OS、GNU计划、POSIX标准和Internet。

Linux下的编程语言:C、C++、Java、Perl、Python、Rudy、PHP......

 

2、控制结构是C语言的基石:

Goto语句的基本功能:无条件跳转、出错处理(核心思想:释放资源的顺序与申请资源的顺序相反)

短路计算:只计算第一个表达式就可以确定整个表达式的值的方法成为短路计算。常见的如:“与”、“非”

C语言中的循环结构:while和for在机器内部是等效的;do..while至少要执行一次循环语句,这是与while之间的区别。

switch语句:实现程序的跳转,不同的是其执行效率比if..else要高,但在程序中所占用的空间方面,要维护一张跳转表,典型的空间换取时间的例子。

 

3、优化控制结构:

表达式优化:替换程序中的乘除法、常量折叠、使用数学公式、存储问题

分支优化:改变判断顺序、使用switch语句

循环优化:一次性计算(在循环中有些计算是多次不变的,例如常量赋值)

注:加减法、位运算、移位操作->乘法运算->除法运算,速度由快至慢。

 

4、函数的本质:

函数是一种特殊的控制流程,只有理解函数的本质,才能理解程序中的存储类别和模块化程序设计的思想。

函数的本质:一段机器指令代码(一段二进制可执行代码,这些代码是一些可以被机器直接执行的指令)。

函数名的本质:一个标号,该标号的值等于内存中存储函数代码的内存空间的首地址。

 

5、变量的初始值:

对于全局变量来说,如果一个全局变量未被初始化,其初始值由编译器自动设置为0,因此使用一个全局变量时,不需要考虑其初始值问题,直接使用就可以了。全局变量属于一个源程序文件。

对于局部变量,定义了局部变量后,编译器不会将其初始化为0,而是使用其占用的内存空间原有值,这时的值是一个随机值,与本次程序无关。局部变量存储在内存的堆栈中。因此,如果对局部变量不初始化就直接引用是很危险的。

小结:C语言程序中的局部变量存储在栈上,而全局变量存储在数据段上。

时间: 2025-01-20 20:32:50

linux C杂记(一)的相关文章

《精通Linux内核必会的75个绝技》知识杂记

http://www.ibm.com/developerworks/cn/linux/l-cn-utrace/ utrace是为运行态的进程提供trace和debug支持. utrace能做如下事情: 1 跟踪目标进程的各种事件 2 Debugger能控制调试程序,让目标暂停或者单步执行 3 对目标进程地址空间的访问能力 可以使用nuttcp来确认两机之间的吞吐量 在一台机器上使用nuttcp搭建接收器(服务器),在另外一台机器上搭建发送器(Sender),然后就可以测试速度了. 如何控制网络的

c语言问题-Linux下的C语言程序问题无限循环

问题描述 Linux下的C语言程序问题无限循环 这个程序我在Linux里用gcc编译,然后无限循环,我用ctrl+c但是只能停止循环,却不能退出运行,这是一个问题,还有一个就是为什么它会无限循环?我把for里面中间一个x!=9.9改成x<=9.9还是无限循环,为什么? 解决方案 杂记之C语言之无限循环 解决方案二: 改成<=9.9就不会出现这个情况的, 解决方案三: 亲测,改为<=9.9不是无限循环,用!=是无限循环的原因很简单,float,double的!=不能这么判断,比如你判断 a

在Linux上架设支持JSP+PHP的Web服务器

js|web|web服务|web服务器 近年来Linux在服务器市场占有比例日渐攀升,除了缘于Linux的免费和安全性之外,还因为Linux上的应用服务日益丰富.大部分常见的服务都在Linux上有了较好的解决方案.而对于Intenet上应用最广泛的Web服务来说,Linux的表现就更为出色.谁也无法说 清Internet上究竟有多少个网站,但在众多网站中,采用PHP和JSP开发的网站无疑占居了极大的市场份额.下面就介绍一下如何在Linux上架设支持JSP+PHP+MySQL的Web服务器. 对于

在TurboLinux上的安装 Informix for Linux

1. 安装前准备 1) 需要安装 TurboLinux 产品 2) 需要有安装文件 Ids.rpm, connect.rpm 和 clisdk.rpm Ids.rpm Informix Dynamic Server 7.3 Connect.rpm Informix 客户端产品连接环境 Clisdk.rpm Informix 客户端产品开发环境 3) 需要有合法的 Serial Number 和 Key Number 4) 如果在同一台服务器上安装多余一种的以上产品, 应按如下顺序安装: Info

linux中PHP dirname(

  在php 中dirname() 函数返回路径中的目录部分,__FILE__而当前运行文件的完整路径和文件名.如果用在被包含文件中,则返回被包含的文件名.这是一个魔法变量(预定义常量),在windows中没有问题但在linux中路径出现的问题,下面我们一起来看看路径问题解决方法. 近期在给wordpress开发模板功能时发现,直接使用include("文件名")的形式调用其他php代码片段时会出现路径错误.之前服务器环境一直都是iis,未曾出现过类似的BUG,但换成linux服务器后

linux中的&amp;quot;瑞士军刀&amp;quot;

linux中的"瑞士军刀" busybox 俗称linux中的瑞士军刀,它类似于linux系统中bash 的一个缩微版,常用于嵌入式设备中,例如你的android手机中等等.busybox作为一个开源的应用,它的解析命令行的应用是值得学习的 http://busybox.net/

Linux系统性能分析工具的使用

系统性能分析工具 上面的章节介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下面就具体讲述这几个常用性能分析工具的使用. 1.vmstat命令 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,很多linux发行版本都默认安装了此命令工具,利用vmstat命令可以对操作系统的内存信息.进程状态.CPU活动等进行监视,不足之处是无法

Linux下备份恢复技术的应用

  本文讲述Linux环境下,如何使用备份的脚本和命令以及商业化的软件来合理高效地保护磁盘数据安全. 备份与恢复系统承担着事前备份与事后恢复的职能.在当前高速发展的网络环境下,任何一个网络上的信息 系统都不可能保证绝对的安全.只要有网络存在,就会有来自网络的形形色色的威胁.为了抵御网络的攻击和入侵,虽然我们引入了日趋成熟的入侵检测系统.防火墙系统等,黑客们的入侵手段也日益高明,他们总能找到这些系统的安全漏洞及不足进行入侵,因而网络入侵所引起的安全事件呈逐年增加之势. 在这种情况下,我们难以保证网

linux如何恢复被删除的热文件

windows下如果文件被删除还有回收站,如果没放入回收站或者回收站被清空了,还可以使用easyrecover或者finaldata等等很多工具来恢复: 可是linux下没有回收站,那么linux下如果文件被删除了如何恢复呢?如果刚好你删除的文件还在被其它程序调用,那么恭喜你,很轻易的的将删除的文件找回来 我们先手工来删除我们的日志文件/mnt/ramdisk/messages,删除前我们显卡一下这个文件的内容 01 [root@test ~]# head /ramdisk/message 02