| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |