Just nu i M3-nätverket
Gå till innehåll
Gäst George M

Exkludera inkludering i C

Rekommendera Poster

Gäst George M

Inkluderingar typ "#include <stdio.h>" är en överloppsgärning i C.

Redigerad av George M

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst George M

Det var ett tips! Testa att u t e s l u t a pre-processordirektivet!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det var ett tips! Testa att u t e s l u t a pre-processordirektivet!

 

Då skulle det bli många kompileringsfel i de C-program jag skrev en gång i tiden.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag håller helt klart med Cecilia i det här fallet, många fel kommer man få. Plus ett väldigt begränsat program då jag vill minnas att stdio är standard input/output på samtliga system som din C-kompilator är anpassad för. Så du kommer inte kunna läsa in inmatningar från tangentbord, skriva till skärm och eventuellt inte heller läsa och skriva till fil.

 

Så då har du ett program som du varken kan ge data till eller få data ifrån och vad är syftet med ett sådant program egentligen.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst George M

Bjuder på följande kod:

*

void main()

{

int c1, c2;

c1 = 5; /* 00000101 */

c2 = c1 << 3; /* 00101000 */

printf("Resultat: %d %d", c1, c2);

}

--- Kompilerar och länkar ---

D:\Program\Dos\Cc tcc -nout mf\bitshift

Turbo C++ Version 1.01 Copyright

© 1990 Borland International

mf\bitshift.c:

Turbo Link Version 3.01 Copyright

© 1987, 1990 Borland International

Available memory 421696

*

--- Kör bitshift.exe ---

D:\Program\Dos\Cc out\bitshift

Resultat: 5 40

*

Kommentarer:

- Skapade filer: bitshift.obj (281 Byte), bitshift.exe (6 kB)

- Inga varningar. Inga kompileringsfel.

Redigerad av George M

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Ja, det kan ju gå med så där små program. De program som jag höll på med var på många tusen rader uppdelat på många källkodsfiler och med flitigt användande av olika bibliotek som krävde att man inkluderade deras .h-filer. Det var väl vanligt att man behövde inkludera minst 10 .h-filer i en källkodsfil.

 

Typ det som skrivs om Word for Windows version 1.1a från 1991:

 

The 7 MB zip file contains 1021 files in 33 folders. In the root directory there is a “readme” file that briefly explains the rest of the contents. Most of it is source code in C, but there are also text documents, x86 assembler-language source files, executable tools, batch files, and more.

http://www.computerhistory.org/atchm/microsoft-word-for-windows-1-1a-source-code/

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

printf funktionen är definierad i stdio.h, vilket betyder att din kompilator antagligen har inkluderat den automatiskt utan att säga något till dig.

 

Man kan argumentera för och emot om det är bra att kompilatorn gör sådant per automatik, men man kan absolut inte anta att alla kompilatorer beter sig på samma sätt. Så det finns en ganska stor risk att bara för att det fungerar för dig med din Borland kompilator så kanske det inte fungerar för någon annan som kör gcc till exempel.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst George M

Borde kanske justera trådrubriken till "Att inkludera i C

ibland överflödigt". Om du nu '.M' har taggarna uttåt så

varför inte testa med din gcc-kompilator i stället för att

spotta ut dig fördömningar. Ni i publiken också: testa

och redovisa! Hoppas ni inte är lika allvarstyngda och

trista som 'Stormuffin' i era kommentarer. Tråden var ur-

sprungligen menad som en upplysning, inte menad som någon

absolut sanning. Något som kan vara k u l att pröva på.

Hört talas om kommentarer som "Oh, det låter intressant!"

Eller: "Uppfriskande, det hade jag ingen aning om!"?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Ja du, efter att femtielva gånger har råkat ut för kompileringsfel därför att jag har missat att inkludera en av alla nödvändiga .h-filer så vet jag att man vid normal programutveckling behöver inkludera många .h-filer och det låter inte vare sig intressant eller uppfriskande när någon påstår motsatsen.

 

Du får kalla mig negativ, allvarlig, sur, irriterad eller vad som helst men jag är bara realist.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...