Linux kernel 問題

driver folder下面有
abc.c abc.h abc.o hello.c hello.h (一堆其他file)

Make file內只有abc.o
冇hello.c

abc.c入面其中一句
#include "hello.c"

想問下咁寫既話,hello.c既內容係唔係會自動include埋abc.o入面?同時complie埋入去最後既成品而唔洗經hello.o?

會就會
不過咁搞唔係大路

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

未聽過人include .c咁有趣
通常都include .h

TOP

未聽過人include .c咁有趣
通常都include .h
KinChungE 發表於 2015-12-14 22:13



    我都第一次見
唔知上手點寫到D咁既神code出泥
PS. Android kernel泥,唔係細

TOP

會就會
不過咁搞唔係大路
EITCo 發表於 2015-12-14 20:24



    姐係hello.c入面既野都會係埋abc compile出泥既野到?

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

本帖最後由 EITCo 於 2015-12-15 08:44 編輯

你當#include "foo.c"
等於你自己開notepad
將foo.c內容貼過去取代#include "foo.c"個行

測試:
main.c
  1. #define TIME 3
  2. #include "foo.c"

  3. int main() {
  4.         foo();
  5.         return 0;
  6. }
複製代碼
foo.c
  1. void foo() {
  2.         sleep(TIME);
  3. }
複製代碼
用gcc -E見到係會將foo.c貼過去
然後試真正出executable,亦運行正常
  1. $ gcc -E main.c
  2. # 1 "main.c"
  3. # 1 "<built-in>"
  4. # 1 "<command-line>"
  5. # 1 "/usr/include/stdc-predef.h" 1 3 4
  6. # 1 "<command-line>" 2
  7. # 1 "main.c"

  8. # 1 "foo.c" 1
  9. void foo() {
  10. sleep(3);
  11. }
  12. # 3 "main.c" 2

  13. int main() {
  14. foo();
  15. return 0;
  16. }
  17. $ gcc -o main main.c
  18. $ ./main && echo Next prompt appears after 3 seconds
  19. Next prompt appears after 3 seconds
  20. $
複製代碼

TOP

你當#include "foo.c"
等於你自己開notepad
將foo.c內容貼過去取代#include "foo.c"個行

測試:
main.cfoo ...
EITCo 發表於 2015-12-15 08:43


Thx a lot
咁我識點睇啦

TOP