【Linux学习(3)】----C语言编程篇(1)
一、环境搭建:
在Linux环境下先使用:
sudo apt-get update
将下载源进行更新。在更新完毕之后,再使用
sudo apt-get install gcc
将C语言的编译器进行gcc进行下载与安装,当gcc编译器安装好后,就可以愉快地进行C语言程序的编写与运行了
安装常见问题问题之一:
sudo apt-get install Xxx
E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
解决方法之一直接在当前命令行输入:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
二、C语言的执行过程:
在Linux下C程序的执行过程简单表现为:
. c->.out
细致分解为:
C语言文件-预处理-编译-汇编-链接可执行文件
预处理: gcc -E C语言源文件.c > gcc预处理之后的文件.i编译:gcc -S gcc预处理之后的文件.i {生成 编译文件.s}汇编:gcc -c 编译文件.s {生成 汇编文件.o}链接:gcc 汇编文件.o -o 目标可执行文件运行当前路径下可执行的文件:./目标可执行文件
这是整个C语言从编译到形成可执行文件的过程,在实际开发中,常用
gcc C语言源文件.c -o 目标可执行文件
如果下载了make工具,也可以使用
make C语言源文件
三、零碎小芝士
1、C语言中:
\n------表示换行和强制刷新缓冲区
2、打印出当前C语言源文件.c文件中所有的警告和报错:
gcc C语言源文件.c -Wall
3、当gcc没有看见内建函数所存在的头文件时,默认次此内建函数的返回值是int
4、对于Linux系统内行来说只有进程概念没有线程概念
5、算法:流程图,分步骤,
6、程序:数据结构+算法
7、进程:运行的程序,开始占用资源
8、防止写越界,防止写内存泄露,谁打开谁关闭,谁申请谁释放
9、在C语言编写中有如下建议:
1,头文件正确包含的重要性
2,以函数为单位进行程序编写
3,声明部分+实现部分
4,主函数中的最后return 0是给主函数的父进程看的
4,多用空格空行
5,新的注释方式:{#if 0中间内容在进行编译时,不参与编译#endif
}
四、数据类型,运算符和表达式
对于基本数据类型{
1、所占字节数:
在标准c中,只规定以int类型作为一个基准,int类型占一个机器字长,char要小于int类型,float和double类型要大于int
2、存储区别:
C语言不识别二进制,在计算机中,整形数的存储是以补码形式存储,
正数的源码补码反码都一样;
负数的反码是其源码按位取反,负数补码是其源码按位取反再加一;
实型数float的存储{
在内存中开辟32位存储空间,最高位31位是符号位,次高位30到23位总的8位用于存储小数的整数部分,
0到22位总的23位用于存储小数部分数据
}
二进制下:
1,1,1,1=8,4,2,1
2进制,
8进制(2的3次方,在二进制下,将数字分为三个一组,然后转换为0到7之间的数字),
16进制(2的4次方,在二进制下将数字转换为4位一组,然后转换为0到f之间的数)
3、不同类型间数据转换:
隐式转换---->自动类型提升
显式转换---->强制类型转换
4,特殊性:
1)布尔型bool 假为0真为1
2)float类型指的是一个大概的数一般float是否等于0常用(fabs(float f-0)<=1e-6)判断
3)吃char型是否有符号
4)不同形式的0值:0, '0',"0",'\0'
5)数据类型与后续代码中所使用的输入输出要匹配(防止自相矛盾)
}
五、关于量:
字符常量:
由单引号引起来的单个字符或转义字符。
字符串常量:
由双引号引起来的一个或多个字符序列(如空串:"")
标识常量:
#define 宏名 宏体{
宏体替换宏名,不检查语法,一般宏体建议加括号表示区分,宏还可以带参数,
如(#define Max(a,b) a>b?a:b),宏使用比较危险
}
#define处理程序是在预处理阶段,占编译时间,特点一改全改,不检查语法,只是单纯的宏体与宏名替换
实栗子{i=5i=7i++>j++? i++:j++
}
//输出是???
以上是今日小结,不喜勿喷,感谢理解
相关链接:
【Linux学习(2)】----shell编程篇(2)_lixxkv的博客-CSDN博客
【Linux学习(3)】----C语言编程篇(1)相关推荐
- linux操作系统下 c语言编程入门
linux操作系统下 c语言编程入门 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门 ...
- [转] linux操作系统下c语言编程入门
(一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程 ...
- linux操作系统下c语言编程入门
linux操作系统下c语言编程入门 整理编写:007xiong 原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux ...
- 【转贴】linux操作系统下c语言编程入门
[转贴]linux操作系统下c语言编程入门 发信人: Lerry (驴是的念来过倒·杏红等头墙上爬), 信区: Linux 标 题: linux操作系统下c语言编程入门 发信站: 哈工大紫丁香 (Fr ...
- linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消 ...
- Linux下C语言串口应用编程,Linux下串口C语言编程
Linux下串口C语言编程 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 串口操作代码#include #include #inclu ...
- 南工程c语言实验报告,Linux环境下-C语言编程实验报告(1)(总4页).doc
Linux环境下-C语言编程实验报告(1)(总4页).doc 西 安 邮 电 大 学 (计算机学院)课内实验报告实验名称 Linux环境下 C语言编程 专业名称 网络工程班 级 1203班 学生姓名 ...
- linux环境c语言课程设计,linux环境下c语言编程课程设计
linux环境下c语言编程课程设计 (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 1/14LINUX操作系统教程课程设计题目算术 ...
- linux c语言 ppt,linux操作系统下c语言编程入门.ppt
linux操作系统下c语言编程入门.ppt Linux操作系统下C语言编程入门 CNT Linux操作系统简介基础知识进程介绍文件操作时间概念消息管理线程操作网络编程Linux下C开发工具介绍 一 L ...
- 实验linux下的编程,实验四 Linux下的C语言编程;
<实验四 Linux下的C语言编程;>由会员分享,可在线阅读,更多相关<实验四 Linux下的C语言编程;(5页珍藏版)>请在人人文库网上搜索. 1.实验四Linux 下的 C ...
最新文章
- 计算机二级无法完成初始化,2012年计算机等级考试二级C语言常见问题:声明和初始化...
- oracle 如何预估将要创建的索引的大小
- Jupyter Notebook中显示图像和数学公式
- VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
- jquery.dataTables.min.js: Uncaught TypeError: Cannot read property 'style' of undefined
- mongodb cond 模糊查询_为了实现在线库的复杂查询,你还在双写吗?
- Kafka的原理介绍及实践
- 【2012百度之星资格赛】G:聊天就是Repeat
- python2中的unicode_在python 3和2中工作的Unicode文字
- php 标点符号,php 过滤英文标点符号及过滤中文标点符号代码
- jQuery再学习之二、jQuery选择器
- 51Nod-1267 4个数和为0【排序+有序组合查找】
- apache log分析
- 生物信息学习——tophat使用手册
- 使用正则表达式在Java中悬挂缩进段落
- 火狐浏览器的安装及配置
- 移动硬盘显示成cd驱动器解决办法
- html5分镜头脚本范例,分镜头脚本教程图解
- 2019中信软开社招
- 如何使用爬虫分析Python岗位招聘情况
热门文章
- WIN TO GO下无法识别本地硬盘解决办法
- 按键精灵+ bluestacks+winsip模拟对讲
- google research
- php开源商城 yii,Yii2开源电商系统 fecshop
- Elastic认证特训营 难点解读01——best_fields, most_fields, cross_fields 拆解认知
- 为什么越来越多人选择3D打印模型手办
- python工程师需要什么技能_江门北大青鸟:Python工程师都会哪些技能?
- 关于SUMO里如何通过Python进行车流量控制
- 记录中招勒索病毒及其解决过程
- Windows server 2008 DNS服务器架构(八)