2011-02-26 28 views
33

C işlevlerimi 2 ayrı .c dosyasına yazmak istiyorum ve her şeyi birlikte derlemek için IDE (kod blokları) kullanıyorum.C programını birden çok dosyaya nasıl bölersiniz?

nasıl kod blokları bu kurarım?

nasıl diğer dosya içinde itibaren bir .c dosyasında işlevleri denir?

+0

IDE nedir? – Simon

+3

Bunun nasıl bir vaguer olabileceğini göremiyorum. Henüz bir şey denedin mi? C dilini biliyor musun? Bir başlık nedir biliyor musun? –

+6

Şunların farkında olma ihtimaliniz şu ki: c genellikle derlenirken, "onları kullanmak için dosyaları çağırmak" dan söz ederken *, yorumlanmış bir dil duygusuna sahiptir. Derlenmiş diller için iş akışı, yorumlanmış dillerden biraz farklıdır (birçok IDE, sizden farkı gizleyecektir). – dmckee

cevap

88

soru çok muğlak, sana "nasıl çeşitli .c dosyalarındaki işlevleri ayırmak ve IDE her şeyi birlikte derlemek için" anlamına düşünüyorum. Yanlış isem (örn Şunu "IDE kendisinden .c dosyalarında tanımlanan işlevleri nasıl kullanılacağı"), sadece yorumlarda söyle ve G/güncellemek cevabım silmek memnuniyet duyarız. Genelde

, iki ayrı .c dosyaları (diyelim ki, A.c ve B.c) içinde işlevlerini tanımlamak ve ilgili başlıklarda kendi prototip koymalıyız (A.h, B.h, include guards unutmayın).

.c dosyasında, .c numaralı belgede tanımlanmış işlevleri kullanmanız gerekiyorsa, ilgili üstbilgi #include olacaktır; Daha sonra işlevleri normal olarak kullanabileceksiniz.

tamamı .c ve .h dosyaları

projenize eklenmelidir; Eğer IDE, derlenmeleri gerekip gerekmediğini sorarsa, derleme için sadece .c'u işaretlemelisiniz.

Hızlı örnek:

Functions.h

#ifndef FUNCTIONS_H_INCLUDED 
#define FUNCTIONS_H_INCLUDED 
/* ^^ these are the include guards */ 

/* Prototypes for the functions */ 
/* Sums two ints */ 
int Sum(int a, int b); 

#endif 

Functions.c

/* In general it's good to include also the header of the current .c, 
    to avoid repeating the prototypes */ 
#include "Functions.h" 

int Sum(int a, int b) 
{ 
    return a+b; 
} 

main.c

#include "stdio.h" 
/* To use the functions defined in Functions.c I need to #include Functions.h */ 
#include "Functions.h" 

int main(void) 
{ 
    int a, b; 
    printf("Insert two numbers: "); 
    if(scanf("%d %d", &a, &b)!=2) 
    { 
     fputs("Invalid input", stderr); 
     return 1; 
    } 
    printf("%d + %d = %d", a, b, Sum(a, b)); 
    return 0; 
} 
+0

ı çok başlık dosyası (.h) bulunuyor i yapmalıdır evet – amin

+0

kod blokları kullanın! – amin

+0

haklısın – amin

İlgili konular