相似 nginx 編譯時生成函式鍊錶

2022-08-02 14:48:11 字數 807 閱讀 4937

下面**可能須要一定的c/c++基礎。

須要有一些函式指標的知識

深度剖析函式指標點選這裡

common.h

#pragma once

typedef int (*pt)(void);

void init_2();

2.cpp

#include #include "common.h"

using namespace std;

static pt next_pt;

extern pt top_pt;

int filter_2()

{ cout<<"filter_2"<

#include #include "common.h"

using namespace std;

static pt next_pt;

pt top_pt;

static int filter_1()

{ cout<<"filter_1"<

編譯命令 

g++ 1.cpp 2.cpp -g -o0

執行./a.out

filter_2

filter_1

假設你已經程式設計並執行成功,請繼續往下看.

top_pt 為全域性變數

next_pt為區域性全域性變數

假設你想知道

top_pt 在每次**執行時都會變化。不斷地指向新的鍊錶頭部,通過init_*函式的不斷執行,一條鍊錶就產生了。

看起來就像是用全域性變數組成了一條單項鍊表。

好吧。又是奇淫技巧,如是而已。

php 生成html時用到的函式

fopen 函式開啟檔案或者 url fopen filename,mode,include path,context filename 必需。規定要開啟的檔案或 url。mode 必需。規定要求到該檔案 流的訪問型別。可能的值見下表。include path 可選。如果也需要在 include p...

編譯器預設生成的函式

拷貝控制函式包括 拷貝建構函式 拷貝賦值函式 移動建構函式 移動賦值函式 析構函式。1.建構函式 如果我們沒有定義任何建構函式,編譯器會為我們生成乙個預設的建構函式。如果定義了,則沒有預設建構函式,即不能以class item來定義物件了。因此,不管有沒有定義建構函式,最好自己定義下預設建構函式。2...

C 編譯器生成的預設函式

c 編譯器生成的預設函式 話題引入 物件的賦值與複製是如何進行的?他們的區別是什麼?如果乙個空的自定義型別能否執行這些操作?物件賦值 通過 運算子過載 user a 10 b b a 物件複製 呼叫拷貝建構函式 user b user a b 或者 user a b 相當於user a b 也是呼叫...