'Linux C - C基礎篇八(函數)'

Linux 酒店 編譯器 嵌入式Linux技術分享 2019-07-27
"

概念

函數可以被看作是一個由用戶定義的一系列操作的集合。一般來說,函數用一個名字來表示。函數的操作數,稱為參數,由一個位於括號中,並且用逗號分隔的參數列表指定,如果該函數沒有參數需要傳入,則這個列表為空,或者僅有關鍵字void;函數的結果被稱為返回值,返回值的類型被稱為函數返回類型,不產生返回值的函數,返回類型是void,意思是什麼都不返回;函數執行的動作在函數體中指定,函數體包含在一對花括號中。函數返回類型、以及其後的函數名、參數列表和函數體構成了函數定義:

返回值類型 函數名(參數列表)

{

函數體

}

用戶自定義函數

如下,函數的名字是sum,返回值類型是int,有兩個參數分別是int型的a和int型的b。

"

概念

函數可以被看作是一個由用戶定義的一系列操作的集合。一般來說,函數用一個名字來表示。函數的操作數,稱為參數,由一個位於括號中,並且用逗號分隔的參數列表指定,如果該函數沒有參數需要傳入,則這個列表為空,或者僅有關鍵字void;函數的結果被稱為返回值,返回值的類型被稱為函數返回類型,不產生返回值的函數,返回類型是void,意思是什麼都不返回;函數執行的動作在函數體中指定,函數體包含在一對花括號中。函數返回類型、以及其後的函數名、參數列表和函數體構成了函數定義:

返回值類型 函數名(參數列表)

{

函數體

}

用戶自定義函數

如下,函數的名字是sum,返回值類型是int,有兩個參數分別是int型的a和int型的b。

Linux C - C基礎篇八(函數)

函數聲明由函數返回類型、函數名、參數列表構成,由";"結尾,這三個元素被稱為函數聲明或函數原型。函數原型描述的是函數的接口,它詳細描述了調用函數時需要提供的參數的類型和個數,以及函數返回值的類型。一個函數可在一個文件中被聲明多次,一個函數通常需要先聲明,然後才能被調用。例如上面的sum函數聲明如下:

int sum(int a, int b);

庫函數

庫函數就是把一些常用的函數放到庫裡,供別人使用的一種方式。調用的時候把它所在的文件名用#include<>加到裡面就可以了。庫函數一般是放到lib文件裡的。庫函數的源代碼一般是不可見的,但在頭文件中(xxx.h)你可以看到它對外的接口。下面就是調用lib裡面的庫函數printf打印內容到終端的實例,因為庫函數printf再頭文件stdio.h中聲明,所以需要使用#include<stdio.h>來引用,在添加引用後,編譯器才能在調用這個函數的時候找到它。

"

概念

函數可以被看作是一個由用戶定義的一系列操作的集合。一般來說,函數用一個名字來表示。函數的操作數,稱為參數,由一個位於括號中,並且用逗號分隔的參數列表指定,如果該函數沒有參數需要傳入,則這個列表為空,或者僅有關鍵字void;函數的結果被稱為返回值,返回值的類型被稱為函數返回類型,不產生返回值的函數,返回類型是void,意思是什麼都不返回;函數執行的動作在函數體中指定,函數體包含在一對花括號中。函數返回類型、以及其後的函數名、參數列表和函數體構成了函數定義:

返回值類型 函數名(參數列表)

{

函數體

}

用戶自定義函數

如下,函數的名字是sum,返回值類型是int,有兩個參數分別是int型的a和int型的b。

Linux C - C基礎篇八(函數)

函數聲明由函數返回類型、函數名、參數列表構成,由";"結尾,這三個元素被稱為函數聲明或函數原型。函數原型描述的是函數的接口,它詳細描述了調用函數時需要提供的參數的類型和個數,以及函數返回值的類型。一個函數可在一個文件中被聲明多次,一個函數通常需要先聲明,然後才能被調用。例如上面的sum函數聲明如下:

int sum(int a, int b);

庫函數

庫函數就是把一些常用的函數放到庫裡,供別人使用的一種方式。調用的時候把它所在的文件名用#include<>加到裡面就可以了。庫函數一般是放到lib文件裡的。庫函數的源代碼一般是不可見的,但在頭文件中(xxx.h)你可以看到它對外的接口。下面就是調用lib裡面的庫函數printf打印內容到終端的實例,因為庫函數printf再頭文件stdio.h中聲明,所以需要使用#include<stdio.h>來引用,在添加引用後,編譯器才能在調用這個函數的時候找到它。

Linux C - C基礎篇八(函數)

函數調用

函數調用通常需要先聲明,然後再調用。庫函數的調用,直接包含它所在的頭文件即可#include <xxx.h>。如果是我們自己定義的函數,如果再文件內調用,則只需在調用之前聲明這個函數即可;如果是在文件外調用,我們通常將這個函數聲明寫在一個頭文件中,例如xxx.h中,然後在調用的地方通過#include "xxx.h"即可調用。

回調函數

舉個例子,酒店提供叫醒服務,但是要求客人自己決定叫醒的方法。可以是打客房電話,也可以是派服務員去敲門,睡得死怕耽誤事的,還可以要求往自己頭上澆涼水等等。這裡,“叫醒”這個服務是酒店提供的,相當於庫函數,但是叫醒的方式是由旅客決定並告訴酒店的,也就是回調函數。而旅客告訴酒店怎麼叫醒自己的動作,也就是把回調函數傳入庫函數的動作,稱為註冊(register)回調函數,也就是說回調函數註冊後不會裡面調用,而是等到需要調用的時候再回來調用。

"

概念

函數可以被看作是一個由用戶定義的一系列操作的集合。一般來說,函數用一個名字來表示。函數的操作數,稱為參數,由一個位於括號中,並且用逗號分隔的參數列表指定,如果該函數沒有參數需要傳入,則這個列表為空,或者僅有關鍵字void;函數的結果被稱為返回值,返回值的類型被稱為函數返回類型,不產生返回值的函數,返回類型是void,意思是什麼都不返回;函數執行的動作在函數體中指定,函數體包含在一對花括號中。函數返回類型、以及其後的函數名、參數列表和函數體構成了函數定義:

返回值類型 函數名(參數列表)

{

函數體

}

用戶自定義函數

如下,函數的名字是sum,返回值類型是int,有兩個參數分別是int型的a和int型的b。

Linux C - C基礎篇八(函數)

函數聲明由函數返回類型、函數名、參數列表構成,由";"結尾,這三個元素被稱為函數聲明或函數原型。函數原型描述的是函數的接口,它詳細描述了調用函數時需要提供的參數的類型和個數,以及函數返回值的類型。一個函數可在一個文件中被聲明多次,一個函數通常需要先聲明,然後才能被調用。例如上面的sum函數聲明如下:

int sum(int a, int b);

庫函數

庫函數就是把一些常用的函數放到庫裡,供別人使用的一種方式。調用的時候把它所在的文件名用#include<>加到裡面就可以了。庫函數一般是放到lib文件裡的。庫函數的源代碼一般是不可見的,但在頭文件中(xxx.h)你可以看到它對外的接口。下面就是調用lib裡面的庫函數printf打印內容到終端的實例,因為庫函數printf再頭文件stdio.h中聲明,所以需要使用#include<stdio.h>來引用,在添加引用後,編譯器才能在調用這個函數的時候找到它。

Linux C - C基礎篇八(函數)

函數調用

函數調用通常需要先聲明,然後再調用。庫函數的調用,直接包含它所在的頭文件即可#include <xxx.h>。如果是我們自己定義的函數,如果再文件內調用,則只需在調用之前聲明這個函數即可;如果是在文件外調用,我們通常將這個函數聲明寫在一個頭文件中,例如xxx.h中,然後在調用的地方通過#include "xxx.h"即可調用。

回調函數

舉個例子,酒店提供叫醒服務,但是要求客人自己決定叫醒的方法。可以是打客房電話,也可以是派服務員去敲門,睡得死怕耽誤事的,還可以要求往自己頭上澆涼水等等。這裡,“叫醒”這個服務是酒店提供的,相當於庫函數,但是叫醒的方式是由旅客決定並告訴酒店的,也就是回調函數。而旅客告訴酒店怎麼叫醒自己的動作,也就是把回調函數傳入庫函數的動作,稱為註冊(register)回調函數,也就是說回調函數註冊後不會裡面調用,而是等到需要調用的時候再回來調用。

Linux C - C基礎篇八(函數)

如上面我的的回調函數的例子,其中register_service就是用來註冊回調函數的,註冊的目的就是現在不調用,但是在需要回調的時候,我可以找到這個函數。上面的service_zhangSan、service_liSi就是回調函數,所以看來回調函數和普通的函數並沒有區別,只不過是使用的場景不同。

不定參函數

我們平時常用的函數參數個數都是固定的,但是有時候也會用到一些參數不固定的函數,例如printf等一系列函數,這些函數的參數的個數是不確定的。下面我寫個簡單的例子來闡述下不定參函數的實現:

"

概念

函數可以被看作是一個由用戶定義的一系列操作的集合。一般來說,函數用一個名字來表示。函數的操作數,稱為參數,由一個位於括號中,並且用逗號分隔的參數列表指定,如果該函數沒有參數需要傳入,則這個列表為空,或者僅有關鍵字void;函數的結果被稱為返回值,返回值的類型被稱為函數返回類型,不產生返回值的函數,返回類型是void,意思是什麼都不返回;函數執行的動作在函數體中指定,函數體包含在一對花括號中。函數返回類型、以及其後的函數名、參數列表和函數體構成了函數定義:

返回值類型 函數名(參數列表)

{

函數體

}

用戶自定義函數

如下,函數的名字是sum,返回值類型是int,有兩個參數分別是int型的a和int型的b。

Linux C - C基礎篇八(函數)

函數聲明由函數返回類型、函數名、參數列表構成,由";"結尾,這三個元素被稱為函數聲明或函數原型。函數原型描述的是函數的接口,它詳細描述了調用函數時需要提供的參數的類型和個數,以及函數返回值的類型。一個函數可在一個文件中被聲明多次,一個函數通常需要先聲明,然後才能被調用。例如上面的sum函數聲明如下:

int sum(int a, int b);

庫函數

庫函數就是把一些常用的函數放到庫裡,供別人使用的一種方式。調用的時候把它所在的文件名用#include<>加到裡面就可以了。庫函數一般是放到lib文件裡的。庫函數的源代碼一般是不可見的,但在頭文件中(xxx.h)你可以看到它對外的接口。下面就是調用lib裡面的庫函數printf打印內容到終端的實例,因為庫函數printf再頭文件stdio.h中聲明,所以需要使用#include<stdio.h>來引用,在添加引用後,編譯器才能在調用這個函數的時候找到它。

Linux C - C基礎篇八(函數)

函數調用

函數調用通常需要先聲明,然後再調用。庫函數的調用,直接包含它所在的頭文件即可#include <xxx.h>。如果是我們自己定義的函數,如果再文件內調用,則只需在調用之前聲明這個函數即可;如果是在文件外調用,我們通常將這個函數聲明寫在一個頭文件中,例如xxx.h中,然後在調用的地方通過#include "xxx.h"即可調用。

回調函數

舉個例子,酒店提供叫醒服務,但是要求客人自己決定叫醒的方法。可以是打客房電話,也可以是派服務員去敲門,睡得死怕耽誤事的,還可以要求往自己頭上澆涼水等等。這裡,“叫醒”這個服務是酒店提供的,相當於庫函數,但是叫醒的方式是由旅客決定並告訴酒店的,也就是回調函數。而旅客告訴酒店怎麼叫醒自己的動作,也就是把回調函數傳入庫函數的動作,稱為註冊(register)回調函數,也就是說回調函數註冊後不會裡面調用,而是等到需要調用的時候再回來調用。

Linux C - C基礎篇八(函數)

如上面我的的回調函數的例子,其中register_service就是用來註冊回調函數的,註冊的目的就是現在不調用,但是在需要回調的時候,我可以找到這個函數。上面的service_zhangSan、service_liSi就是回調函數,所以看來回調函數和普通的函數並沒有區別,只不過是使用的場景不同。

不定參函數

我們平時常用的函數參數個數都是固定的,但是有時候也會用到一些參數不固定的函數,例如printf等一系列函數,這些函數的參數的個數是不確定的。下面我寫個簡單的例子來闡述下不定參函數的實現:

Linux C - C基礎篇八(函數)

以上是老韓關於Linux c函數的總結歡迎一起討論,如有不足歡迎指點;對Linux c或者Linux驅動感興趣的朋友可以收藏關注,我會持續更新的,謝謝支持!

"

概念

函數可以被看作是一個由用戶定義的一系列操作的集合。一般來說,函數用一個名字來表示。函數的操作數,稱為參數,由一個位於括號中,並且用逗號分隔的參數列表指定,如果該函數沒有參數需要傳入,則這個列表為空,或者僅有關鍵字void;函數的結果被稱為返回值,返回值的類型被稱為函數返回類型,不產生返回值的函數,返回類型是void,意思是什麼都不返回;函數執行的動作在函數體中指定,函數體包含在一對花括號中。函數返回類型、以及其後的函數名、參數列表和函數體構成了函數定義:

返回值類型 函數名(參數列表)

{

函數體

}

用戶自定義函數

如下,函數的名字是sum,返回值類型是int,有兩個參數分別是int型的a和int型的b。

Linux C - C基礎篇八(函數)

函數聲明由函數返回類型、函數名、參數列表構成,由";"結尾,這三個元素被稱為函數聲明或函數原型。函數原型描述的是函數的接口,它詳細描述了調用函數時需要提供的參數的類型和個數,以及函數返回值的類型。一個函數可在一個文件中被聲明多次,一個函數通常需要先聲明,然後才能被調用。例如上面的sum函數聲明如下:

int sum(int a, int b);

庫函數

庫函數就是把一些常用的函數放到庫裡,供別人使用的一種方式。調用的時候把它所在的文件名用#include<>加到裡面就可以了。庫函數一般是放到lib文件裡的。庫函數的源代碼一般是不可見的,但在頭文件中(xxx.h)你可以看到它對外的接口。下面就是調用lib裡面的庫函數printf打印內容到終端的實例,因為庫函數printf再頭文件stdio.h中聲明,所以需要使用#include<stdio.h>來引用,在添加引用後,編譯器才能在調用這個函數的時候找到它。

Linux C - C基礎篇八(函數)

函數調用

函數調用通常需要先聲明,然後再調用。庫函數的調用,直接包含它所在的頭文件即可#include <xxx.h>。如果是我們自己定義的函數,如果再文件內調用,則只需在調用之前聲明這個函數即可;如果是在文件外調用,我們通常將這個函數聲明寫在一個頭文件中,例如xxx.h中,然後在調用的地方通過#include "xxx.h"即可調用。

回調函數

舉個例子,酒店提供叫醒服務,但是要求客人自己決定叫醒的方法。可以是打客房電話,也可以是派服務員去敲門,睡得死怕耽誤事的,還可以要求往自己頭上澆涼水等等。這裡,“叫醒”這個服務是酒店提供的,相當於庫函數,但是叫醒的方式是由旅客決定並告訴酒店的,也就是回調函數。而旅客告訴酒店怎麼叫醒自己的動作,也就是把回調函數傳入庫函數的動作,稱為註冊(register)回調函數,也就是說回調函數註冊後不會裡面調用,而是等到需要調用的時候再回來調用。

Linux C - C基礎篇八(函數)

如上面我的的回調函數的例子,其中register_service就是用來註冊回調函數的,註冊的目的就是現在不調用,但是在需要回調的時候,我可以找到這個函數。上面的service_zhangSan、service_liSi就是回調函數,所以看來回調函數和普通的函數並沒有區別,只不過是使用的場景不同。

不定參函數

我們平時常用的函數參數個數都是固定的,但是有時候也會用到一些參數不固定的函數,例如printf等一系列函數,這些函數的參數的個數是不確定的。下面我寫個簡單的例子來闡述下不定參函數的實現:

Linux C - C基礎篇八(函數)

以上是老韓關於Linux c函數的總結歡迎一起討論,如有不足歡迎指點;對Linux c或者Linux驅動感興趣的朋友可以收藏關注,我會持續更新的,謝謝支持!

Linux C - C基礎篇八(函數)
"

相關推薦

推薦中...