我是靠谱客的博主 无语帅哥,最近开发中收集的这篇文章主要介绍C语言—Linux,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

函数

  • 编程的最小单位
  • 分类:
    • 1.库函数:printf,scanf,包含头文件#include<stdio.h>
    • 2.自定义函数
  • 组成:
    函数类型,函数名,参数,函数体
  • 参数:
    • 实参:函数调用的参数

    • 形参:函数实现的参数

    • 参数传递:

      • 值传递:只是访问变量值
      • 地址传递:修改变量值
    • 不定参
      #include <stdarg.h> 表示不定参头文件

    • void va_start(va_list ap, last);//初始化

      • 第一个参数:表示不定参列表
      • 第二个参数:表示有名参数最后一个参数
    • type va_arg(va_list ap, type);//访问

      • 第一个参数:表示不定参列表
      • 第二个参数:表示数据类型
    • void va_end(va_list ap);//销毁

    • void va_copy(va_list dest, va_list src);//拷贝

#include <stdio.h>
#include <stdarg.h>

void test(int a, ...)
{
	va_list ap;
	
	//不定参链表初始化
	va_start(ap, a);

	//访问数据
	printf("a : %dn", a);
	printf("sec : %cn", va_arg(ap, int));
	printf("three : %fn", va_arg(ap,double));
	printf("four : %sn", va_arg(ap, char *));
	//销毁
	va_end(ap);

}

int main(void)
{
	test(123, 'A', 3.44, "hello");
	return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kY4tkSZZ-1620219306395)(2021-05-04-20-32-27.png)]

#include <stdio.h>
#include <stdarg.h>

int test(int a, int b, ...)
{
	int sum = a + b;
	int tmp;
	va_list ap;

	va_start(ap, b);

	while ((tmp = va_arg(ap, int)) != 0)
	{
		/*printf("tmp : %dn", tmp);*/
		sum += tmp;
	}

	va_end(ap);

	return sum;
}
int main(void)
{
	int a = 10, b = 20, c = 30, d = 40;

	printf("add : %dn", test(a, b, c, d, 0));
	printf("add : %dn", test(1,2,3,4,5,6,7, 0));
	
	return 0;
	
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gruiFANP-1620219306422)(2021-05-04-20-34-30.png)]

头文件

  • 头文件:
    • <> : 表示会从系统头文件的目录中查找 /usr/include/

    • “” : 表示从当前工作目录中查找,如果当前的工作目录没有,则从系统头文件的目录中查找。

    • 为了防止头文件重复包含

	#ifndef __FUNC_H__
	#define __FUNC_H__
	

	#endif //FUNC_H
  • 源文件生成二进制可执行文件分四步
    • 1 预处理:就是把以下的伪代码和特殊字符展开,并保存源文件中
      gcc -E file.c -o file.i
      伪代码和特殊字符
      以#开头统称伪代码
      头文件 宏命令 条件编译
    • 2 编译:就是检查语法错误和词法规则
      gcc -S file.i -o file.s
    • 3 汇编 生成目标代码
      gcc -c file.s -o file.o
    • 4 连接
      gcc file.o -o file

makefile :

一门规则性语言

  • 实现makefile开发流程
    1 创建一个makefile文件
    touch Makefile or makefile

  • 2 打开makefile文件
    vim Makfile

  • 3 实现:
    定义规则 => 默认规则
    all:
    echo hello

  • 4 执行
    make

  • 依赖:
    1 规则名
    2 变量
    3 文件名

变量:

varname=value

  • 符号

    • = 表示替换掉原来值
    • += 表示在原有的基础上累加
    • ?= 判断这个变量是否有值,如果有,则保留原理的值。如果没有,则赋值给这个变量
    • := 如果取变量值给当前变量,
      如果这个变量定义在当前变量后面,则无法获取
      如果这个变量定义在当前变量前面,则可以获取
  • 取值:
    ${varname}

  • 自动变量:

    • $@ : 表示规则名
    • $^ : 表示所有依赖
    • $< : 表示第一个依赖
    • $+ : 表示所有依赖
  • 注释:
    #

  • 指定执行makefile文件

    • make -f filename rule
    • make + 规则名(当前路径)
  • 静态编译
    make -s filename

  • 伪代码:
    确保有限执行makefile的规则
    .PHONY:clean

递归

就是函数自己调用自己

  • 直接递归:A => A
  • 间接递归:A => B => A

最后

以上就是无语帅哥为你收集整理的C语言—Linux的全部内容,希望文章能够帮你解决C语言—Linux所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部