[ lazuz @ 25.12.2007. 14:05 ] @
Kako da napisem "hello world" program u C-u bez koriscenja bilo koje biblioteke

Npr.



Code:

#include <stdio.h>

main(){

printf("Hello world");

}



bez koriscenja printf funkcije( ili bilo koje druge funkcije). Da li mozda moram da koristim asembler?

[ k.bojan @ 25.12.2007. 14:45 ] @
Koliko ja znam to nije moguce.
Jer sama printf funkcija ispisuje na conzolu,a printf se nalazi u stdio.h to je stadndardni input/output header.
npr
Code:

int main()
{
   int a=5,b=7,c;
   c=a+b;
}

Ovo ce da radi jer nemas potrebe za nekom funkcijom iz C-ove biblioteke. Cim imas neku funkciju iz njegove standardne biblioteke moras da je ukljucis (u pretprocesorsku direktivu) naredbom #include<ime_standardne_biblioteke.h> ili #include "ime_tvoje_biblioteke.h"
Ovaj prvi nacin pozivanja ukljucuje #include<ime_standardne_biblioteke.h> u tvoj program time sto pretrazuje prvo C-ovu biblioteku a onda ostalo
a kada ukljucujes svoju biblioteku ukljucejes je sa #include "ime_tvoje_biblioteke.h" jer kada kompajler naidje na " " a ne na < > on automatski prvo pretrazuje na onom mjestu gdje se nalazi tvoj program, pa onda ostalo. Ovakvim nacinom pisanja dobijas na brzini program.
[ lazuz @ 25.12.2007. 15:15 ] @
Znaci, bez printf funkcije ne mogu nista da napisem u konzoli(tj. ne postoji drugi nacin) ili te nisam dobro shvatio?
[ k.bojan @ 25.12.2007. 15:45 ] @
Dobro si shvatio :)
Bez "printf" iz biblioteke <stdio.h> u programskom jeziku C ne postoji drugi nacin da se nesto napise u konzoli.
npr u programskom jeziku C++ da bi nesto napisao u konzoli koristis "cout" iz biblioteke #include<iostream>
[ bzero @ 25.12.2007. 16:29 ] @
Citat:

Bez "printf" iz biblioteke <stdio.h> u programskom jeziku C ne postoji drugi nacin da se nesto napise u konzoli.


puts("Hello world") ?
[ k.bojan @ 25.12.2007. 17:26 ] @
:D

Pogledaj prethodne postove ;)

puts("Hello world");

moze da radi samo ako je ukljucena pretprocesorska direktiva

A moja je greska u prethodnom postu. Lose sam se izrazio. Ono sto sam htio reci je: bez ukljucene i jedne biblioteke C-a nemoguce je ispisati nesto na konzolu.
Jer i puts je funkcija biblioteke stdio.
A pitanje je bilo
Citat:
lazuz: Kako da napisem "hello world" program u C-u bez koriscenja bilo koje biblioteke

Npr.



Code:

#include <stdio.h>

main(){

printf("Hello world");

}



bez koriscenja printf funkcije( ili bilo koje druge funkcije). Da li mozda moram da koristim asembler?


Pozdrav
[ lazuz @ 25.12.2007. 17:43 ] @
ok, razumeo sam pored printf moze i puts, ali ja sam zeleo da ispisujem bez ijedne funkcije(da bih video kako to radi ispod haube - pa makar i u asm-u)

p.s. zasto mi je ovaj kod prosao kompajliranje uz samo upozorenje

Code:

main (){
 int a= 0;
 printf("aaaa");

}


obrisao sam debug i release direktorijum i ponovo kompajlirao i ponovo je proslo uspesno uz 1 warning??!? Koristim VS 6.0
[ k.bojan @ 25.12.2007. 17:53 ] @
Ja sam isti kod kompajlirao u MS kompajleru ali koristio sam Visual C++ Expres edition 2008
i dobio sam gresku
'printf': identifier not found
a zatim sam kompajlirau u GCC MinGW kompajleru i dobio sam gresku
`printf' undeclared (first use this function)

tako da to ne moze (bar kod mene :))
znas kako mozda je nesto i moguce izvesti na nivou asemblera mada cisto sumnjam jer C++ je OOP jezik, ujedno i procedurni jer je nastao od C-a pa je C podskup od C++ a u jedno je i genericki i mislim da on ne moze da vrsi komunikaciju sa hardverom kao sto asembler moze.
Cisto sumnjam da se moze odraditi to sto ti mislis,ali...
Mozda se i moze nesto izvesti ali ja ne znam kako...

Pozdrav :)
[ Shadowed @ 25.12.2007. 17:54 ] @
Inline assembly i pozivanje bios interrupt-a?
[ k.bojan @ 25.12.2007. 17:58 ] @
Citat:
Shadowed: Inline assembly i pozivanje bios interrupt-a?

Mozes li ako nije problem da ovo malo objasnis sta je sta???
Hvala unapred
Pozdrav
[ staticInt @ 25.12.2007. 18:11 ] @
Citat:
k.bojan: Mozes li ako nije problem da ovo malo objasnis sta je sta???
Hvala unapred
Pozdrav


Uzmes lepo nakucas u ASMu sve i samo to pozoves iz C-a :)

http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
[ k.bojan @ 25.12.2007. 18:19 ] @
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html :))))))))))))
Upravo ovo citam
Hvala u svakom slucaju
Pozdrav
[ lazuz @ 25.12.2007. 19:59 ] @
Citat:
k.bojan: Ja sam isti kod kompajlirao u MS kompajleru ali koristio sam Visual C++ Expres edition 2008
i dobio sam gresku
'printf': identifier not found
a zatim sam kompajlirau u GCC MinGW kompajleru i dobio sam gresku
`printf' undeclared (first use this function)

tako da to ne moze (bar kod mene :))


evo koji warning izbacuje

Code:
warning C4013: 'printf' undefined; assuming extern returning int


u svakom slucaju hvala na odgovorima k.bojan - izgleda da moze samo pomocu ams-a, pogledacu taj link(hvala staticInt) da vidim kako cu moci da se snadjem ...
[ Sephiroth? @ 25.12.2007. 21:51 ] @
Prvo, pogrijesio si forum, pitanje je za C za pocetnike, a ne za C++ za pocetnike...

Za sta ti ovo treba? Samo za edukaciju? Ako ti treba princip rada, nadji negdje kako je napravljena cak i ta printf() funkcija pa je prouci, a nakon toga slijedi trag dok ne dodjes do same srzi problema...
[ lazuz @ 26.12.2007. 13:00 ] @
Citat:
Sephiroth?:

Za sta ti ovo treba? Samo za edukaciju?

Da
Citat:
Sephiroth?:

Ako ti treba princip rada, nadji negdje kako je napravljena cak i ta printf() funkcija pa je prouci

To je prvo sto sam trazio, ali nisam nigde nasao.