1. 程式人生 > >C語言 將函式(有參、無參)作為引數傳遞

C語言 將函式(有參、無參)作為引數傳遞

在學習中遇到一個問題,就是要計算出一個函式的執行時間,但是我不可能每個函式都去執行一次clock,所以這裡要想統一處理這個問題就需要把函式作為引數傳入到方法內。

首先是是無參函式作為的傳遞:

void printTest_0()
{
	printf("%s", "printTest_0");
}

void printTest_1()
{
	printf("%s", "printTest_1");
}

void CalRunTime(void(*pri)())
{
	pri();
}

後面就是帶引數函式的傳遞:

void printTest_2(int value)
{
	printf("%s,value=%d\n", "printTest_2", value);
}

void printTest_3(int value)
{
	printf("%s,value=%d\n", "printTest_3", value);
}

void CalRunTime(void(*pri)(int), int value)
{
	pri(value);
}

這裡就是將函式作為引數傳遞的程式碼。

想了解更多可以新增QQ群:879354767  或者關注下方公眾號瞭解更多資訊:

相關推薦

C語言 函式作為引數傳遞

在學習中遇到一個問題,就是要計算出一個函式的執行時間,但是我不可能每個函式都去執行一次clock,所以這裡要想統一處理這個問題就需要把函式作為引數傳入到方法內。 首先是是無參函式作為的傳遞: void printTest_0() { printf("%s", "prin

C語言中函數聲明

-s 函數返回 int 是什麽 變量 strong 返回值 pro ont 函數原型: 原型prototype是函數的聲明;描述了函數的返回值與參數; 函數原型說明了兩點: 1、該函數的返回值 2、該函數的參數及其類型 ++++++++++++++++++++++++++

程式猿之---C語言細節9巨集定義maxa,b巨集定義細節大小端判斷(int&)a什麼意思

主要內容:巨集定義、max(a,b)巨集定義細節、大小端判斷、(int&)a什麼意思 #if 1 #include <stdio.h> // 注意空格 #define F (x) ((x) - 1) // F代表後面 #define F(x)

構造方法定義過載

一、構造方法是什麼,有什麼用? 構造方法是類的一個特殊的成員,在類例項化時會自動呼叫。 通過前面的學習,我們知道為一個屬性賦值有兩種方法:①、直接訪問物件屬性 ②、通過setXxx()方法 如果想在例項化物件的同時就為這個物件的屬性進行賦值,可以通過構造方

C/C++開發】函式使用結構體結構體指標作為返回值分析

函式使用結構體、結構體指標作為返回值分析 32位機,gcc編譯器 使用結構體作為返回值 分析反彙編程式碼可知,當被呼叫的子函式返回值為結構體的時候,呼叫函式將分配一段空間用於存放返回的結構體(使用一個結構體變數接受返回值),並將這段空間的地址作為呼叫時的引數壓棧。子程式不負責對要返回的結構體分

使用C語言操作bitmap彩色變灰色,黑白

這裡有有一篇bitmap基本格式的部落格,不再贅述 https://www.cnblogs.com/ZXNblog/p/4046342.html 下面講述怎麼將24為的bitmap影象變成灰色和黑白。 定義BITMAPFILEHEADER,和BITMAPINFOHEADE

Ret2Libc(2) system‘/bin/sh’繞過NXASLR

和Ret2Libc(1)一樣,先把程式扔進IDA看看程式碼    和Ret2Libc(1)一樣,gets存在溢位漏洞 gdb-peda$ checksec CANARY    : disabled FORTIFY   : disabled

Ret2Libc(1) system/bin/sh繞過NXASLR

Ret2Libc即控制程式執行libc庫中的函式。 通常是返回到某個函式的plt處,或者函式執行時候的實際地址。 下面是一個例子: 可以看出程式gets有一個明顯的溢位漏洞 gdb-peda$ checksec CANARY    : disabled FO

C語言經典例題菜鳥教程100例

這兩天正在看基礎的演算法,在做的時候肯定不能避免的接觸了菜鳥上的經典100例,但是使用的時候發現並不是那麼的方便,因為它只是給了序號,如果查詢某一問題的話很不方便,所以做了這篇部落格,希望給自己和其他人帶來幫助!

資料機構 C語言實現佇列含程式碼詳解 易懂

/* 數學模型參照《大話資料結構》佇列部分   !!!取餘運算實現佇列迴圈!!! */ #include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h>

C語言指標陣列每個元素都是指標

如果一個數組中的所有元素儲存的都是指標,那麼我們就稱它為指標陣列。指標陣列的定義形式一般為: dataType *arrayName[length]; [ ]的優先順序高於*,該定義形式應該理解為: dataType *(arrayName[length]); 括號裡面

14_Java面向物件_第14天Eclipse高階類與介面作為引數返回值_講義

今日內容介紹 1、Eclipse常用快捷鍵操作 2、Eclipse文件註釋匯出幫助文件 3、Eclipse專案的jar包匯出與使用jar包 4、不同修飾符混合使用細節 5、辨析何時定義變數為成員變數 6、類、抽象類、介面作為方法引數 7、類、抽象類、介面作為方法

一些可變長度物件string物件vector物件 ...作為結構體或類的成員,會不會動態改變結構體或類所定義的變數的大小呢?

       可能是我自身的原因,經常性的杞人憂天!        在接觸到C++的一些類時,想的有點多了。事實證明,我確實想多了。但是我覺得可能會有和我一樣會多想的小夥伴,我在這分享一個我想多了的栗

C語言 十六進制字符串轉為十六進制數 二進制十進制都適用

include 字符串 %d style pre 指針 main 8進制 16進制 主要利用 long int strtol(const char *nptr,char **endptr,int base); 函數 函數說明:    參數base範圍從2至36,或0。參數b

C語言函式宣告

函式原型: 原型prototype是函式的宣告;描述了函式的返回值與引數;  函式原型說明了兩點: 1、該函式的返回值 2、該函式的引數及其型別 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 函式的引數: 引數到底是什

c語言】巨集#define#和##函式比較

#define -定義識別符號 ef:#define在預處理階段替代所有的Max #define Max 100 int main() { printf("%d\n", Max); system("pause"); return 0

C語言指標知識點:指標在函式的輸入輸出時 的性質

主調函式可以把棧區、堆區、全域性區的資料地址傳給被調函式;被調函式只能返回堆區和全域性區的資料及地址。 指標作為函式的傳入引數,由主調函式分配記憶體;指標作為函式的輸出時,由被調函式分配記憶體。 如果想通過形參改變實參的內容,必須地址傳遞(C中,C++中還可以通過引用的

C語言字串函式總結:模擬實現常用的字串類函式strlenstrcpystrcmp........)

總結:模擬實現常用的字串類函式(strlen、strcpy、strcmp……..) 1. strlen 2. strcpy 3. strcat 4. strstr 5. strchr 6. strcmp 7. memcpy 8. m

C語言天天練十八】字元/字串輸入函式fgetcfgetsgetcgetchar和gets

#include <stdio.h> intfgetc(FILE *stream); char *fgets(char *s, int size, FILE *stream); int getc(FILE *stream); int getchar(void);

C語言註釋風格函式功能輸入輸出返回

C語言程式設計規範-註釋規則: 1:一般情況下,源程式有效註釋量必須在20%以上。     說明:註釋的原則是有助於對程式的閱讀理解,在該加的地方都加了,註釋不宜太多也不能太少,註釋語言必須準確、易懂、簡潔。 2:說明性檔案(如標頭檔案.h檔案、.inc檔案、.def檔案、