函数

关注413人关注
我要报错
函数(function)的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。函数的近代定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示,函数概念含有三个要素:定义域A、值域B和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。[1]
  • C 虚函数详解

    01—C虚函数探索C是一门面向对象语言,在C里运行时多态是由虚函数和纯虚函数实现的,现在我们看下在C中如何用虚函数实现多态。先来看一段代码。//virtual_function.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include class Ba...

    C语言编程
    2021-10-13
    函数
  • 嵌入式编程中一些常用的转换函数

    来自公众号:嵌入式ARM1、字符串转十六进制代码实现:void StrToHex(char *pbDest, char *pbSrc, int nLen){  char h1,h2;  char s1,s2;  int i;    for (i=0; i 9)          ...

  • 编程5分钟,命名2小时!探讨一下C语言变量/函数的命名规则!

    来源|程序喵大人在软件中随处可见命名:要给变量、函数、参数、类和封包命名,还要给源代码及源代码所在目录命名,甚至还有jar文件、war文件和ear文件命名。但是,看似简单的命名,也是让不少程序员头疼的问题。有一些小伙伴,在进行变量命名的时候,对于自己熟悉的英文,可能还会用英文命名一下,如果需要命名的部分不会用英文表达,或许就直接用拼音了。有的童鞋一下想不起来怎么命名,直接用拼音直接用aa,bb等这样没有任何代表意义的字母来命名,可读性非常差,可能自己今天写的,一个星期后回来再看,也忘记其具体代表的含义了。因此,许多人在写代码之前,总会在想啊想啊,用什么命名法好呢?对于经常在C、Java、Pyt...

  • C进阶 | 函数宏的三种封装方式

    点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!来源:CSDN1.函数宏介绍函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。函数宏本质上为宏,可以直接进行定义,例如:#define INT...

  • 虚函数真的就那么慢吗?它的开销究竟在哪里?来看这4段代码!

    # 干了这碗鸡汤生活是苦难的,我又划着我的断桨出发了。--博尔赫斯想必很多人都听说过虚函数开销大,貌似很多答案都说是因为虚函数表导致的那一次间接调用,真的如此吗?直接看下面这两段代码:#include #include "timer.h"struct Base {   publi...

  • C 内联函数的相关概念

    C内联函数的概念介绍内联函数之前,需要说明一下C在执行普通函数时的一个过程,在调用普通函数时,执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈,跳转到标记函数起点的内存单元,执行函数代码,然后调回到地址被保存的指令处,下图是关于C普通函数调...

  • 一个函数超过1000行,可以不?

    “一个函数的代码尽量不要超过50行”

  • 可重入与不可重入函数的区别

    什么是可重入函数与不可重入函数?两者有何优缺点?

  • STM32中精确延时函数的实现

    在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数, 下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫色的 to Cortex System timer(MHz)就是Systick的时钟频率

  • C语言 | 常见数据转化函数

    一文了解字符串转十六进制。

  • C语言 main 函数到底为啥这么写?

    但 凡是学过C语言的人,都知道要先写main函数,然而很多时候我们看到的main函数却各有差异,这究竟是为啥? 哪种是对的呢? 今天我们就来聊聊main函数。 那么main函数一共有多少个版本呢? 1、main() 直接的mian()并没有返回值,没有入参。这种写法实际来

  • 函数指针,指针函数,函数指针数组

    这是一个群友发的笔试题目,里面涉及的东西也比较有意思。 直接看代码 void (*f[])(char *) 这个是个什么东西? 我们先看看下面的东西 函数指针和指针函数的定义 我们看个代码 int *func(int a,int b) 我们之前说过运算符的优先级,「 * 」  的优先级低于「(

  • C语言常用的一些转换工具函数收集

    1、字符串转十六进制 代码实现: void StrToHex(char *pbDest, char *pbSrc, int nLen) {   char h1,h2;   char s1,s2;   int i;     for (i=0; i

  • 分享两个C库源码中的移位函数

    以下源代码是之前阅读C库代码获取的,分享一下: _lrotr()将一个无符号长整形数左循环移位的函数 原形:unsigned long _lrotr(unsigned long value,int count) 功能:将value向左循环移动count位。 返回值:将value向左循环移动count位后的值。 头文件:stdli

  • RT-Thread编程高阶用法-函数扩展之$Sub$$与$Super$$

    前面移植了RT-Thread Nano,其实准确来说那不叫移植,那叫做部署,因为移植的工作官方已经帮我们做好了。 文章链接:小熊派移植RT-Thread Nano 1、引发思考-相关资料检索 在之前的文章提到过,RT-Thread已经提前在main函数以前就把跟硬件配置、系统初始化、启

  • 【Linux系统编程】可重入和不可重入函数

    1 不可重入函数 在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果有一个函数不幸被设计成为这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。这样的函数是不安全的函数,也叫不可重入函数。

  • C++ const常量对象、常量成员函数和常引用

      小林coding   — 1 — 常量对象 如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加 const 关键字。 class CTest { public:     void SetValue() {} private:     int m_value; }; const CTest obj; // 常量对象 — 2 — 常量成员函数 在类的成

    小林coding
    2020-09-08
    C++ 函数
  • Linux多路复用Select()与poll()函数

    在Linux编程中,一切皆文件,往往是对一个文件进行操作,比如说串口,和传感器打交道,一般情况下就是一来一去,一收一发,但是,如果我有多个传感器,而传感器之间又有关联,我想同时监控一个或者多个以上的文件描述符,要如何去实现这个需求呢?

  • C++函数模版与重载的区别

    C++函数模版与重载的区别 微信公众号:杨源鑫 如果你觉得本文对你有帮助,欢迎留言探讨! 首先,先来看一个例子: #include using namespace std ; //C++函数模版两种定义方式 //template < typename T> 或 template

  • 进入编译器后,一个函数经历了什么?

    我是一个函数 我是一个函数,名叫str_upper,我可以把输入的字符串从小写变成大写。不信你看,我长这样: char* str_upper(char* str, int len) {      char upper[256];      if (len >= 256 || len