/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Spørgsmål om platform-uafhængighed og port~
Fra : Joe


Dato : 01-06-10 22:25

Hejsa,

Jeg skal implementere en algoritme i ANSI C. Algoritmen skal
pakkes ind i et API.

Jeg bruger Bloodsheed's Dev-C++ (ver. 4.9.9.2) og har
tilføjet compiler-kommandoen -ansi i menuen "Compiler Options".
Jeg har desuden sat "Support all ANSI standard C programs" til
"Yes".

Er det nok for at sikre, at min kode overholder ANSI C standarden?

Hvis en given platform har en tilhørende C-compiler, hvordan sikrer jeg
mig så at min kode kan compiles på den platform? Er det nok at min kode
overholder/følger ANSI C standarden?

Hvordan sikrer jeg mig, at variabler som skal have en bit-bredde på
16bit, faktisk er 16bit brede uanset platform ? Findes der ikke en
header-fil med makroer som UINT16, SINT16 osv, så jeg bare
kan bruge disse typer og være sikker på at eksempelvis

UINT16 x;

altid resulterer i at x er 16 bit bred og unsigned ...uanset platform..

Tak på forhånd.





 
 
Arne Vajhøj (02-06-2010)
Kommentar
Fra : Arne Vajhøj


Dato : 02-06-10 03:12

On 01-06-2010 17:25, Joe wrote:
> Jeg skal implementere en algoritme i ANSI C. Algoritmen skal
> pakkes ind i et API.
>
> Jeg bruger Bloodsheed's Dev-C++ (ver. 4.9.9.2) og har
> tilføjet compiler-kommandoen -ansi i menuen "Compiler Options".
> Jeg har desuden sat "Support all ANSI standard C programs" til
> "Yes".
>
> Er det nok for at sikre, at min kode overholder ANSI C standarden?
>
> Hvis en given platform har en tilhørende C-compiler, hvordan sikrer jeg
> mig så at min kode kan compiles på den platform? Er det nok at min kode
> overholder/følger ANSI C standarden?
>
> Hvordan sikrer jeg mig, at variabler som skal have en bit-bredde på
> 16bit, faktisk er 16bit brede uanset platform ? Findes der ikke en
> header-fil med makroer som UINT16, SINT16 osv, så jeg bare
> kan bruge disse typer og være sikker på at eksempelvis
>
> UINT16 x;
>
> altid resulterer i at x er 16 bit bred og unsigned ...uanset platform..

-ansi -pedantic

bør sikre dig mod sprog udvidelser i forhold til ANSI/ISO.

-Wall

er nok også en god option.

Det er imidlertid ikke det samme som at et program vil opføre
sig ens på alle platforme.

Det er jeg lidt bange for kræver en sikker hånd hos ham der
benytter tastaturet mens koden skrives.

Med hensyn til data typer med specifik størrelse, så har C99
en stdint.h som definerer nogle standard størrelse - f.eks.
er din 16 bit unsigned uint16_t.

Arne

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste