「inline function缺點」的推薦目錄:
- 關於inline function缺點 在 コバにゃんチャンネル Youtube 的最讚貼文
- 關於inline function缺點 在 大象中醫 Youtube 的最佳解答
- 關於inline function缺點 在 大象中醫 Youtube 的精選貼文
- 關於inline function缺點 在 Re: [問題] 請問if判斷式裡是否可以用macro做condition 的評價
- 關於inline function缺點 在 iOS中内联函数的使用 的評價
- 關於inline function缺點 在 c++ ptt - ++ 程式設計 的評價
- 關於inline function缺點 在 Pros and Cons of Different macro function / inline methods ... 的評價
inline function缺點 在 大象中醫 Youtube 的最佳解答
inline function缺點 在 大象中醫 Youtube 的精選貼文
inline function缺點 在 iOS中内联函数的使用 的推薦與評價
... (inline function) inline 使用inline 修饰 ... 所以可以认为是空间换时间思想的体现. 缺点. 会增加代码体积. 注意. 尽量不要内 ... ... <看更多>
inline function缺點 在 c++ ptt - ++ 程式設計 的推薦與評價
... :enum 定義整數,const T 定義常數,inline function 定義函式C++ ... 缺點做說明: 1 debug會. ... <看更多>
inline function缺點 在 Re: [問題] 請問if判斷式裡是否可以用macro做condition 的推薦與評價
可以多行的
int a = 0;
#define M0(b) ((\
[&](const int t)->bool {\
a += t;\
a += t;\
a -= t;\
return a > 5;\
})(b))
#define M1(b) (a+=(b), a+=(b), a-=(b), a>5)
跟普通的 function 相比,在使用上這兩種各自有些優缺點:
*************
M0 (lambda 的寫法)
優點 0 :
可以避免普通函數還要給他名字。
缺點 0 :
通常只有工作才會覺得這個很好,而且這真的見仁見智。
有的人會說,M0 還不是一個名字,但其實這真的很不一樣。
優點 1:
可能可以使用外面的變數(但有限制,不過至少可以選擇傳值),
而不用像普通函數需要使用者自己傳進來,
這在跟很多人一起開發防止別人寫錯非常好用。
或當要改寫舊的程式碼 or 加入新功能卻不想重新教育使用者時
缺點 1:
這個變數必須要有定義。
*************
至於 M1 (逗號 operator):
好處:簡單,可以使用外面變數(沒限制,因為只是文字替代)。
壞處:簡單,能做的事少也很難避免傳入的式子被重複求值。
附註:
inline function
建議編譯器展開的函數,可能有以下效果:
0. inline 建議被忽略
1. 減少函數呼叫成本
2. 因為 inline 太多而增加程式碼大小
一般寫在 header file 居多,這樣可以有相同實現。
其實我也是新手,一起討論。
還有 @
welcome~~對了我修改了 inline 附註的第 0 條以避免誤會
其實雖然很多人對 macro 深惡痛絕,
但只要你不要誤用,其實預處理器能成為你非常強有力的工具,
而且 C++ 本身有非常多的特性容易讓人誤用,不是只有 macro 而已。
工作上會遇到很多困難,完成任務和撰寫可讀性高、可維護、高效能的程式很重要
(就像你要設計程式自動產生程式時,你會發現 goto 實在是好用 XD)
關於 macro 當函數用,舉個簡單的例子:
#define SHOW_LOG(...) \
do {\
printf("file: %s\n", __FILE__);\
printf("line: %d\n", __LINE__);\
printf(__VA_ARGS__);\
printf("\nLog_end\n");\
} while(0)
int a = 0;
SHOW_LOG("a = %d", a);
這會幫助你設計(debug 方便輸出)。
還有實務上大量使用的 assert macro,
這可是古老前輩傳下來的必備招數。
最後,加油!我是低手,希望你有天成了 C++ 大師之後,能照顧一下小弟。
※ 編輯: applecool 來自: 123.110.164.174 (08/21 02:57)
... <看更多>