[問題] C 語言下有類似 Template 的功能嗎?
如題。Template 是 C++ Library 才有的工具。
如果要讓 C 語言的程式碼簡單一點,有什麼好招能用嗎?
目前在編寫 Linux driver ,只能用 C 。
板上 / 過 template 了。
希望大家提供協助,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.179.172
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1495591422.A.F60.html
→
05/24 10:05, , 1F
05/24 10:05, 1F
→
05/24 10:05, , 2F
05/24 10:05, 2F
→
05/24 10:16, , 3F
05/24 10:16, 3F
推
05/24 12:36, , 4F
05/24 12:36, 4F
→
05/24 13:32, , 5F
05/24 13:32, 5F
int get_[obj_s member](struct obj_s *self){
int err_code = checkByMode(self,
&_common_update_attr_[obj_s member],
"common_get_[obj_s member]");
if (err_code < 0){
return err_code;
}
return (int)self->[obj_s member];
}
如上。我只是想對 struct obj_s 中不同的 member 執行 get 的動作,
程式碼中除了 [obj_s member] 是根據不同的 member 而變化。
其他的部分完全一模一樣。
但我的前輩為每一種 member 都寫了一個 function ,導致 code 顯得冗贅。
請問我需要怎麼精簡?
由於 members 的 type 分別有 uint8_t、int、char*...等等,
所以原本想到能不能用類似 C++ 的 template 完成?我需要在 C 語言上達成。
※ 編輯: henry8168 (59.120.179.172), 05/24/2017 13:54:40
→
05/24 14:13, , 6F
05/24 14:13, 6F
推
05/24 23:46, , 7F
05/24 23:46, 7F
推
05/25 14:38, , 8F
05/25 14:38, 8F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):