C -Code - versteh den Aufbau nicht

Gast #814176
Lesenswert?

Hi, versuche gerade in meine Codes mal mehr Ordnung zu bekommen ...


zwei Fragen:

a)Kennst jemand ne Seite, wo ein wenig erläutert wird, wie man "sauber" 
programmiert ?

b) Verstehe hier einen Aufbau nicht :

in main.c steht:      #include "delay.h"

in delay.h steht dann nur:

#ifndef DELAY_H
#define DELAY_H
void Delay(uint16 ms);
#endif


woher weiß jetzt der Linker, dass dazu die Datei delay.c gehört ?

in der steht das dann drin:

#include <avr/io.h>
#include <avr/pgmspace.h>
#include "delay.h"

void Delay(uint16 millisec)
{
  // this delay is calibrated for 8MHz clock.
    uint16 i;
    while (millisec--)
        for (i=0; i<1325; i++)
      asm("nop");
}
#814210
Lesenswert?

Sims wrote:

> woher weiß jetzt der Linker, dass dazu die Datei delay.c gehört ?

Indem man ihm auf der Command Line bei seinem Aufruf beide
Object Dateien angibt.

Der Ablauf ist

* main.c compilieren. Das ergibt ein main.o
* delay.c compilieren. Das ergibt ein delay.o
* main.o und delay.o und diverse Libraries (die kennt der
  Linker sowieso) zusammenlinken um das fertige Programm zu erhalten


Wenn du eine IDE verwendest, die den Source Code in sog. 'Projekte'
organisiert, dann reicht es normalerweise, wenn man der IDE
bekannt gibt, dass das Projekt aus main.c, delay.c und delay.h
besteht. Die IDE leitet dann obige Schritte in die Wege.
Benutzt man einfach nur ein makefile, dann werden die Einzelteile
im makefile angegegeben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren