巨集也可以有返回值

2021-06-20 03:22:20 字數 367 閱讀 4841

**:

一直是在使用c語言寫程式,而且是嵌入式上的開發。針動硬體的開發,不可避免的要使用巨集。但長期以來一直沒有解決的問題的是,如何使用巨集來代替一段函式的功能,而且還能返回乙個值呢?近幾天在做jos的實驗,發現其有對巨集的使用非常的巧妙。感嘆一下,原來巨集也可以這個樣了: 1 

#include 

2 3 

#define kaddr(addr) /4 (

)/11 

12intmain() 

13 輸出結果:7,10

上面的這段**定義了乙個名叫kaddr的巨集,它可以跟據輸入的addr資料,對其進行不同的偏移,但是最巧妙的是,這樣子寫可以有把這個值返回到呼叫該巨集的語句中。

有返回值和無返回值函式

前面在定義函式時,有些函式使用了return語句,有些函式沒有使用return語句,使用return語句與不使用return語句有什麼區別呢?由前面的章節我們知道,若定義函式時沒有使用return語句,則預設返回乙個none。要返回乙個none,可以只寫乙個return,但要返回具體的數值,就需要在...

返回值還引數 有返回值有引數的資料運算

有乙個引數有返回值的函式 include include int f int x 函式y 2x 1int add int x 自加函式int main 實現的功能是計算f x 的值,f x 2x 1,以及乙個自加函式return的作用是把函式執行的結果返回給呼叫者,返回值是什麼取決於return後面...

建構函式有返回值

function f1 console.log new f1 返回例項,委託原型 console.log new f1 name f1 console.log f1 name uncaught typeerror cannot read property name of undefined cons...