#include<stdio.h>
int max(int a, int b){
if(a>b){
return a;
}else{
return b;
}
}
#include<stdio.h> #<>尖括号表示系统文件
#include "max.c" #“”双引号表示非系统文件
int main(){
int a1=33;
int a2=21;
int maxNum=max(a1, a2);
printf("The max value is %d\n ", maxNum);
}
:sp max.c vim编辑器新建一个文件并打开窗口
Ctrl + w + 上下箭头,两个窗口里切换
gcc max.c hello.c -o main.out 编译max.c和hello.c两个文件,生成输出文件main.out
#include<stdio.h> int main(){ printf("hello world!"); return 0; } cc a.c产生a.out ./a.out
Linux C语言常用命令
sudo apt-get update 更新资源
sudo表示使用管理员权限
sudo apg-get install vim 安装vim
cc -v 查看GCC编译器版本
clean 清理屏幕
cd ~ 进入家目录
ls 查看当前目录下有哪些目录
ls -l 详细显示当前目录文件
touch 新建
mkdir 创建目录
rm 删除
pwd 当前所在位置
vi/vim 文件名 编辑文件
vim编辑器里按i,进入编辑模式。按esc进入命令模式
i是当前光标插入,a是光标前插入
shift+a ?
d d
x 删除
vim指令的使用
c语言是和计算机沟通的一种方式
ANSI C
C语言特点:1、linux嵌入式2、硬件编程3、高性能要求
记得看一下2个函数有什么不同
<stdio.h> 标准输入输出流
int main()//现在的标准里不能用void main
{
printf("hello word!\n");
return 0;
}
;wq
cc a.c//编译
#include<stdio.h>导入标准输入输出流
在Linux中不要使用void main,要使用有返回值的
缩进4个空格
保存并退出 :wq
编译 cc a.c
执行 ./a.out
r可读,w可写,x可执行
打开终端
emacs /vim编辑器
先更新再安装,密码是系统密码
sudo是管理员权限
查看编译器版本,是GCC
clean清理屏幕
cd ~ 进入home目录
pwd当前所在目录位置,查看完整路径
ls显示当前HOME目录下包括哪些文件夹和文件
ls -l当前文件类型、创建时间、权限、用户、用户组(d表示文件夹,-表示普通类型文件)
touch abcd新建文件abcd
rm abcd删除文件abcd
mkdir workspace创建文件夹workspace
cd workspace进入文件夹
mkdir les1创建文件夹les1
进入代码编辑界面
i插入
命令行i光标前插入 a光标后插入 o下一行插入
shift+: 保存文件
sudo(管理员权限)
sudo apt-get install + 软件名称 (安装程序)
sudo apt-get update (更新资源)
sudo apt-get install vim (安装VIM)
clear (清空屏幕)
cd + 目录 (进入目录)
cd ~ (进入根目录)
ls (查看当前目录包含的文件和文件夹)
ls -l (查看当前目录包含的文件或文件夹的详细信息)
touch + 文件名 (新建文件)
rm + 文件名 (删除文件)
mkdir + 目录名 (新建目录)
pwd (查看完整目录地址)
vi(vim) + 文件名 (使用VIM编辑文件)
VIM命令模式:
i (插入模式 或 当前光标前插入字符)
Esc (返回命令行模式)
:w (保存)
a (当前光标后插入字符)
:q (退出VIM)
Shitf + a (在行尾插入字符)
Shift + i (在行手插入字符)
o (下一行插入字符)
Shift + o (在当前行上行插入字符)
x (删除单个字符)
dd (删除整行字符)
tbuntu 商业支持较好(LTS长时间支持版本)通常32/64版本
双系统或在虚拟机中安装
安装完启动虚拟机
标准输入流、输出流和错误流
main.out:max.o min.o main.c
gcc max.o min.o main.c -o main.out
max.o:max.c
gcc -c max.c
min.o:min.c
gcc -c min.c
函数文件编译成 .o 提高编译速度
.h 声明函数类型参数
gcc -c xxx.c -o xx.o
gcc xx.o xx.o xx.c
记录
记录
记录
记录
记录
1、Vim 代码编辑器
2、sudo apt-get update 更新最新资源库
3、sudo 应用管理员权限
4、sudo apt-get install vim 应用管理员权限安装vim软件
5、cc-v 显示当前使用的cc编译器的版本信息
6、gcc-v 显示当前使用的gcc编译器的版本信息,gcc是完全兼容cc的一款开源、流行的编译器。
7、clear 清洁屏幕
8、cd+空格 进入某个目录
9、cd ~进入当前目录的家目录(根目录)
10、pwd 查看当前所在的位置(显示路径)
11、ls 查看当前目录中包含哪些目录(文件夹)或文件
12、ls –l以详细信息的形式查看目录(文件夹)或文件
如果此列表中一行的第一个字母为“d”,说明这是一个目录(文件夹)
如是一个“-”,说明这是一个普通类型的文件
13、touch 文件名 在当前目录中新建一个文件
14、rm 文件名 删除文件
15、mkdir 目录名 新建目录(文件夹)
16、vi(或vim) 文件名.c 用vim编辑一个vim文件
17、在vim中
在命令模式时:
按“i” 进入插入(insert)模式 在当前光标前插入
按“a” 进入插入模式 在当前光标后插入
按“shift+a”(大写A)在当前行尾插入
按“shift+i”(大写I) 在当前行首插入
按“o” 在当前光标所在行下起新建一行插入
按“shift+o”(大写O) 在当前光标所在行上起新建一行插入
按“ESC” 返回命令模式
按“x” 删除当前光标的字符
按“dd” 删除当前光标所在行所有字符
“:”+“w” 保存文件
“:”+“q” 退出vim编辑器
“:”+“q!” 不保存退出
C语言就是人类与计算机的交流的一种方式
称作为ansic C语言特点
简单。快速。高性能。兼容性好。功能性强大。易于学习
如何在最原始的 java 项目中手动导入 jar 依赖
浏览器断点调试
idea如何设置虚拟机栈空间大小
apache建立网站设置端口的方法
ANSI作为C语言的标准。
管道原理及应用
例1:
ls 会将目录作为输出流输出到屏幕,而grep则是一个文件名查询工具,通过“|”生成管道将ls产生的输出流重定向给grep,grep得到输入流后查询结果并输出
例2:
ps -e 是查看linux系统中的进程,我们想查询是否有ssh进程,则利用"|"生成管道将ps -e的输出流重定向给grep进行查询
这只是管道的两个小应用,通过管道将两个工具联通起来得到一个新的工具,以此我们可以写出很多工具
标准输入流输出流以及错误流的重定向
stdio.h
可分为 stdin(标准输入流),stdout(标准输出流),stderr(标准错误流)
stdout 输出流重定向
将输出流重定向输出到a.txt,其中1代表标准输出流,0则是标准输入流,默认为标准输出流
ls 命令作为linux的小工具同样可以重定向输出,上图将查看到的etc目录下的文件名重定向保存到etc.txt
采用单>重定向时会将上一次的输出覆盖,采用>>重定向则会生成在上一次输出下方,并不会覆盖上一次输出
stdin 输入流重定向
创建input.txt,写入6和8两行,使用<重定向输入将input.txt中内容输入给a.out
stderr 标准错误流
标准错误流必须return返回一个非0的数
综合使用,将输出流重定向到t.txt,将错误流重定向到f.txt,将input.txt的内容作为输入流重定向到a.out
总结
将不需要改动的一些公共类文件编译后弄成静态库可以大大增加运行效率
例子
gcc -c max.c -o max.o
调用
gcc max.o hello.c
也可以用.h头文件声明函数,进行头文件调用
Vim
ESC出现冒号后
set nu 显示行号
sp 文件名 显示多个文件
ctrl+w+上下方向键 切换文件窗口
max函数占第9行,按DD剪切到剪切栏,然后按P复制
wqa 全部保存 w:写入 q:退出 a:全部
gcc 文件1.c 文件2.c -o 输出文件名 编译多个文件
1.终端内查看程序的是否运行成功:echo $?
如果输入0,表示成功,否则失败。
2.
:sp 文件名 以水平方式分割窗口,打开文件
:vsp 文件名 以竖直方式分割窗口,打开文件
ctrl+w+↓/j 切换到下面那个文档
ctrl+w+↑/k 切换到上面一个文档
ctrl+w+h 切换到左面一个文档
ctrl+w+l 切换到右面一个文档
:set nu/number 打开行号
:set nonu/nonumber 关闭行号
:wqa 把所有文件都保存退出
【echo $?】:输出main()执行完毕后的返回值
重定向:
命令 1>>文件名:重定向标准输出流(默认1可不写),>> 为追加模式, > 为覆盖模式,文件不存在则创建。
命令 2>>文件名:重定向标准错误流,....。
命令 <文件名:重定向标准输入流,文件不存在则报错。
C语言学习路径:
C语言入门 -> Linux C语言编程基本原理与实践 -> Linux C语言指针与内存 -> Linux C语言结构体