C语言函数

本文介绍了C语言函数的基础知识,包括函数的定义、分类、返回值类型、参数传递方式以及常用的系统函数。函数是C语言中实现特定功能的独立代码块,可以作为黑匣子使用,只需关注输入和输出。此外,文章还提到了主函数的特性以及函数声明的重要性,以及涉及到递归和栈的概念。

一 函数概述

    比较数字大小函数举例

#include <stdio.h>

void max(int i,int j)
{
	if(i>j)
		printf("%d\n",i);
	else
		printf("%d\n",j);
}


int main()
{
	int a,b,c,d,e,f;
	
	a=1,b=2,c=3,d=9,e=-5,f=100;
	max(a,b);
	max(c,d);
	max(e,f);
	
		return 0;
 } 

 

   main函数进,main函数出。

1. 什么是函数

    逻辑上:能够完成特定功能的独立的代码块。

    物理上:能够接收数据(也可以不接收),能够对接收的数据进行处理,能够将数据处理的结果返回(也可以不返回)。

    函数是一个工具,目的是解决大量同类型的问题,有利于程序的模块化。数据可以不同,但是执行的操作不同。

    函数可以当作一个黑匣子,只需要管输入输出,如何实现的不需要知道。

2. 函数定义

  •     如何定义函数:

        函数返回值 函数名字(函数的形参列表)

        {

                      函数的执行体

           }

 

      函数定义的本质是详细定义函数之所以能够实现某个特定功能的具体实现方法。

  •       return函数表达式的含义

              1 终止被调函数,向主调函数返回表达式的值

              2 如果表达式为空,则只终止函数,不向被调函数返回任何值

  •       函数返回值的类型也称为函数的类型,如果函数名前的返回值类型和函数执行体中的return表达式中表达式的类型 不同的话,则最终函数返回值的类型以函数名前的返回值类型为准。 
  •       return 和 break的区别:return用来终止函数,break是用来终止循环的。

3. 函数分类

    有参函数和无参函数

    库函数和用户自定义函数

    有返回值函数和无返回值函数

    值传递函数和地址传递函数

    普通函数和主函数(main函数)

               一个程序必须有且仅有一个主函数

               主函数可以调用普通函数,普通不可以调用主函数(因为main函数无法实现递归)

               普通函数之间可以相互调用

               主函数是程序的入口,也是程序的出口

4. 函数的声明

    声明函数之后,即使调用函数出现在主函数之后,也不会出错。

    

5.常用系统函数

   函数是C语言的基本单位。类是JAVA,C++,C#的基本单位。

   double sqrt(double x):求x的平方根

   int sbs(inx) 求x的绝对值

   double fabs(double x) 求x的绝对值

 

6. 递归(需要了解栈的知识)

    

代码转载自:https://pan.quark.cn/s/133311188eb6 ### C# DllImport功能说明及路径选取问题分析 #### 一、DllImport核心原理 `DllImport`是.NET Framework内的一种技术,用于执行平台调用服务(Platform Invoke, 简称P/Invoke),该机制使得.NET应用程序能够调用非托管代码中的函数,例如Windows API或其他非托管库中的函数。这对于增强.NET应用程序的功能性非常关键,因为许多高级系统级操作(例如文件操作、进程控制等)通常由非托管库负责实现。 `DllImport`特性包含在`System.Runtime.InteropServices`命名空间中,它的主要功能是向CLR(Common Language Runtime)指示如何定位并调用非托管库中的特定函数。 #### 二、DllImport特性包含的主要元素 `DllImport`特性所包含的主要元素有: - **DllName**:必需的字符串参数,用于表明需要导入的非托管库的名称。 - **CallingConvention**:可选参数,用于设定调用协议。在默认情况下,其值为`CallingConvention.Cdecl`。 - **CharSet**:可选参数,用于定义字符集的类型。在默认情况下,其值为`CharSet.Auto`,即根据函数的签名自动决定字符集。 - **EntryPoint**:可选参数,用于指定非托管库中的函数名称。若未提供,则默认使用应用程序的方法名称作为函数名称。 - **ExactSpelling**:可选布尔值,用于确定函数名称是否必须与非托管库中的完全一致。...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值