2011-11-21 63 views
0

timer.c如何在其他文件中使用變量,函數和結構?

typedef struct Timer { 

    int startTicks; 
    int pausedTicks; 

    int paused; 
    int started; 

} Timer; 

void Init(Timer *t) 
{ 
    t->startTicks = 0; 
    t->pausedTicks = 0; 
    t->paused = 0; 
    t->started = 0; 
} 

我需要什麼main.c中做才能利用這個結構和功能在該文件中的?

回答

3

通常,.c文件包含定義,.h文件包含聲明。更好的方法是保持您的定義在一個頭:

//timer.h 
#ifndef TIMER_H //include guard 
#define TIMER_H 

typedef struct Timer { //struct declaration 

    int startTicks; 
    int pausedTicks; 

    int paused; 
    int started; 

} Timer; 

void Init(Timer *t); //method declaration 

#endif 


//timer.c 
#include "timer.h" 

void Init(Timer *t) //method definition 
{ 
    t->startTicks = 0; 
    t->pausedTicks = 0; 
    t->paused = 0; 
    t->started = 0; 
} 

//main.c 
#include "timer.h" //include declarations 
int main() 
{ 
    Timer* t = malloc(sizeof(Timer)); 
    Init(t); 
    free(t); 
    return 0; 
} 
+0

謝謝。 dummys書籍的C編程語言非常薄弱。 – Jason94

+0

不要使用那本書,然後......你會在網上學到更多。或者給自己一本適當的書。 –

2

學會使用header files(通常命名爲*.h)和#include他們。

瞭解如何使用多個編譯單元編譯程序,例如與Makefile

不要忘記啓用所有警告和調試信息(使用GCC,即gcc -g -Wall,即CFLAGS=-g -Wall在您的Makefile中)。

+0

+1,但是這可能是一個單一的文件(我的意思是,它可能是頭文件是沒有必要的) –

+0

樓主提到的兩個文件'計時器.c'和'main.c'。所以對於一個新手來說,擁有一個共同的標題並使用'make'是很有用的。 –

+0

Do'h!我錯過了。 –

相關問題