linuxc

Linux c

vim基本操作

命令行
同时新打开一个文件,如果没有该文件会创建一个新文件

sp name

撤回上一个命令

u

显示行号

set nu或者set number

取消行号

set nonu或者set nonumber

从光标开始剪切9行

9dd

从光标开始复制9行

9yy

粘贴

p

保存打开的所有文件

wqa

linux中c语言常用

通过一个例子进行解释,一个main()文件,一个max(),一个min(),在main()文件中引用max.h,min.h完成对函数子文件引用
首先是main文件

#include<stdio.h>
#include"max.h"
#include"min.h"
int main()
{
	int a=33;
	int b=21;
	c=max(a,b);
	d=min(a,b);
	printf("the max is %d,the min is %d",c,d);
	return 0;
}

max()

int max(int a,int b)
{
	if(a>b){
		return a;
	}
	else{
		return b;
	}
}

min()

int min(int a,int b)
{
	if(a<b){
		return a;
	}
	else{
		return b;
	}
}

max.h

int max(int a,int b)

min.h

int min(int a,int b)

在linux运行c文件可生成.out文件,通过查看.out文件查看结果,由gcc生成文件,-o指定文件名字为a.out

gcc max.c min.c main.c -o a.out

直接查看a.out中的结果

./a.out

在实际运行中我们常把指定文件先翻译成.o的计算机语言,可以理解为二进制文件,减少电脑识别时间,这样在运行整体程序时为提高速度
生成min的.o文件

gcc -c min.c -o min.o

再直接代替运行即可

gcc min.o max.o main.c

我们在实际操作中,运行一个程序需要同时调用多个文件,会很复杂,通过使用make提前写好执行命令

vim Makefile
a.out:max.o min.o main.c
	gcc max.o min.o main.c -o a,out
max.o:max.c
	gcc -c max.c -o max.o
min.o:min.c
	gcc -c min.c -o min.o

运行make,直接输入

make

封装函数的思想

编写代码是为了解决一个实际问题,而我们在解决这个问题中往往需要重复,许多不可避免的步骤。
此时我们可以对这个流程进行一个整体的剥离,把框架理解出封装出一个函数,只需要进行一次流程描述,在合适的地方只需引用此函数即可,就能避免反复编写同一个内容。
在我们写程序时,就已经在进行这个方法了,我们每次在写c文件时,都需要引用头文件#include<stdio.h>,#include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一个文件里减少整体代码尺寸。
例如,我们常说的printf函数和scanf函数,也是各自的封装。

fprintf(stdout,"content")
fscanf(stdin,"content")

再举一个简单的实例,打印等腰三角形。
打印等腰三角形,即在每行前一部分打印空格,中间打印星号,后一部分打印空格,换行。同时空格部分每行都累减1,星号累加2。
等腰三角形例图
按照一般方法,我们可以用嵌套的for循环,

void dysjx(int a,char c)
{
        int i;
        int j;
        for(j=1;j<a;j+=2){
/*              for(i=0;i<a-j/2;i++){
                        printf(" ");
                }
                for(i=0;i<j,i++){
                	printf("%c",c);
                }
                for(i=0;i<a-j/2;i++){
                        printf(" ");
                 printf("\n");
                }
         }
}

第一个for循环进行换行,有多少行,同时定义每行中间星号数目;
中间for循环,描述行内变化,每一行长是2a+1,第一个for是第一部分空格,第二个for循环是星号,第三个for循环是第二部分空格,for循环之后换行。星号每次每行增加两个,空格循环就每次减少一个,总长度不变,等腰三角行即可。
使用简便点方法,分装类,我们发现主要是嵌套的for语句比较多,且意思相近,都是为了打印多少个字符。可以这样:

//定义打印字符c,a次
void pc(int a,char c)
{
        int i;
        for(i=0;i<a;i++){
                printf("%c",c);
        }
}

源程序就可变成:

void dysjx(int a,char c)
{
        int i;
        int j;
        for(j=1;j<a;j+=2){
       			pc(a-j/2,' ');
                pc(j,c);
                pc(a-j/2,' ');
                printf("\n");
        }
}

同时,里面还有一个换行也会经常使用,可以将使其言简意赅,提高编程效率。

//换行,br在html语言中也正是换行的意思,容易理解。
void br()
{
        printf("\n");
}

源程序就可变成:

void dysjx(int a,char c)
{
        int i;
        int j;
        for(j=1;j<a;j+=2){
       			pc(a-j/2,' ');
                pc(j,c);
                pc(a-j/2,' ');
                br();
        }
}
已标记关键词 清除标记
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质? 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹?   那么C++就是你个人能力提升,职业之路进阶的不二之选。 【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署; 2.吊打一切关于C++的笔试面试题; 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块 基础篇 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 进阶篇 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 提升篇: 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页