<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-2">
<META content="MSHTML 6.00.2900.3132" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Pouzit jiny kompilator..</FONT></DIV>
<DIV><FONT face=Arial size=2>Vadi tolik tech par instrukci navic?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Michal</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=econf@centrum.cz href="mailto:econf@centrum.cz">Hynek Sladky</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=hw-list@list.hw.cz
href="mailto:hw-list@list.hw.cz">HW-news</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, December 04, 2007 1:23
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: definice externi konstanty v
C</DIV>
<DIV><BR></DIV>Jak uz jsem psal:<BR><BR>extern unsigned char
konst_maska;<BR><BR>se pouzije jako odkaz na promennou, nikoli jako vlastni
konstanta.<BR>Tj. provede se cosi jako<BR>ld e,(konst_maska)<BR>or
e<BR><BR>misto rovnou pouziti (cehoz bych chtel dosahnout):<BR>or
konst_maska<BR><BR>Otazka tedy zustava: jak rict kompilatoru, ze dany
identifikator je <BR>externe definovana konstanta (nikoli externe definovana
konstantni <BR>promenna)?<BR><BR>Hynek Sladky<BR><BR><BR>Miroslav Sinko
wrote:<BR>> ako som uz pisal:<BR>> <BR>> extern typ
meno_konstanty;<BR>> <BR>> Je to pre kompilator informacia, ze premenna
tohto mena a typu existuje<BR>> v inom module (zdrojak, lib, obj). Teda
kompilator sa o nu dalej<BR>> nestara, az linker.<BR>> <BR>>
miro<BR>> <BR>> <BR>> <BR>> --- Hynek Sladky <<A
href="mailto:econf@centrum.cz">econf@centrum.cz</A>> wrote:<BR>>
<BR>> <BR>>>Diky,<BR>>><BR>>>jenze #define se zpracuje
pri kompilaci, nikoli az pri linkovani, coz<BR>>><BR>>>prave
potrebuju.<BR>>><BR>>>Linker umi to, co chci (viz priklad s
assemblerem), ale nevim, jak v<BR>>>C <BR>>>napsat, aby to pak
spravne slinkoval...<BR>>><BR>>>Hynek
Sladky<BR>>><BR>>><BR>>>Richard Kaliciak
wrote:<BR>>><BR>>>>Dobry
den,<BR>>>><BR>>>>pouzite #define,
napr.<BR>>>><BR>>>>#define TIMER0PRESCALE 0x04 ///< timer
0 prescaler default<BR>>>><BR>>>>nozete si vytvorit jeden
subor hw_config.h, kde si definujete<BR>>><BR>>>potrebne
<BR>>><BR>>>>veci a potom ho vsade
#include-jete:<BR>>>><BR>>>>----------------------------------<BR>>>>#ifndef
HW_CONFIG_H<BR>>>>#define
HW_CONFIG_H<BR>>>><BR>>>>#define TIMER0PRESCALE 0x04 ///<
timer 0 prescaler default<BR>>>><BR>>>>#define LCD_CTRL_RS
0<BR>>>>#define LCD_CTRL_RW 1<BR>>>>#define LCD_CTRL_E
2<BR>>>><BR>>>>#endif<BR>>>>----------------------------------<BR>>>><BR>>>>Richard
Kaliciak<BR>>>><BR>>>><BR>>>>Hynek Sladky
schrieb:<BR>>>><BR>>>><BR>>>>>Dobry
den,<BR>>>>><BR>>>>>jak definovat externi konstantu v
C?<BR>>>>><BR>>>>>Mam knihovni funkci, ktera (zavisle
podle HW na kterem bezi)<BR>>><BR>>>potrebuje
<BR>>><BR>>>>>slinkovat s ruznymi
konstantami.<BR>>>>>Napr.<BR>>>>> NejakyReg |=
konst_maska;<BR>>>>><BR>>>>>pokud
definuju<BR>>>>>const unsigned char
konst_maska=0x20;<BR>>>>>tak se vytvori 8-bit promenna v casti pro
kod.<BR>>>>><BR>>>>>Pritom pokud bych pouzil
assembler, tak toto mozne je:<BR>>>>>XREF
_konst_maska<BR>>>>>in a,(NejakyReg)<BR>>>>>or
_konst_maska<BR>>>>>out
(NejakyReg),a<BR>>>>><BR>>>>>Jenze pouzitim assembleru
v C zdrojaku se zdrojak stava znacne <BR>>>>>neprehlednym, tak
bych to radsi udelal rovnou v C, pokud to
je<BR>>><BR>>>mozne...<BR>_______________________________________________<BR>HW-list
mailing list - sponsored by <A
href="http://www.HW.cz">www.HW.cz</A><BR><A
href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</A><BR><A
href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</A><BR></BLOCKQUOTE></BODY></HTML>