2012-06-15 2 views
2

Purement de la curiosité - pourquoi il est impossible de nommer la variable "c"? Par exemple ...Lettre "c" comme nom de variable

.386 
.model flat, stdcall 
option casemap:none 

include windows.inc 
include kernel32.inc 
include user32.inc 

includelib user32.lib 
includelib kernel32.lib 

Main  proto 

.data 

hOutput dd 0 
hInput dd 0 

bReadWritten dd 0 
szText db "Program calculates the roots of the quadratic expression ax^2+bx+c",10,"Enter a",0 

a dd 0 
b dd 0 
c dd 0 

delta dd 0 

szInput db 128 dup(0) 



.data? 

.code 
start: 

Invoke Main 
Invoke ExitProcess,0 

Main proc 
    invoke GetStdHandle, STD_OUTPUT_HANDLE 
    mov hOutput, eax 

    invoke GetStdHandle,STD_INPUT_HANDLE 
    mov hInput, eax 

    invoke lstrlen, addr szText 
    invoke WriteFile, hOutput, addr szText, eax, ADDR bReadWritten, NULL 

    invoke ReadFile, hInput, a, eax,addr bReadWritten, NULL 
    invoke ReadFile, hInput, b, eax,addr bReadWritten, NULL 
    invoke ReadFile, hInput, c, eax,addr bReadWritten, NULL 

    invoke Sleep,10000 

    ret 
Main endp 


end start 

... Cela provoque une erreur d'assemblage temps

C: \ 3-ème programmes du parti \ WinAsm \ WinAsm \ Projects \ équation quadratique \ EXE.asm (24): erreur A2008: erreur de syntaxe: c
C: \ programmes des partis 3-ème \ WinAsm \ WinAsm \ Projects \ équation quadratique \ EXE.asm (52): erreur A2008: erreur de syntaxe: c

Quand je le renommer, tout se déroule et fonctionne bien.

+0

Très probablement, 'c' est un mot réservé à winasm. Je ne l'ai jamais utilisé, même si je ne sais pas avec certitude. Cela devrait être documenté dans le manuel si c'est le cas. – twalberg

Répondre

2

Essayez de nommer votre variable PASCAL, FORTRAN, BASIC, SYSCALL ou STDCALL. Je crois, vous aurez la même erreur. Ce sont tous des mots-clés qui spécifient des conventions d'appel pour les procédures si vous utilisez ceux écrits dans les langues susmentionnées. L'utilisation valide du mot-clé C serait comme funcname PROTO C arguments...

+0

Ok, maintenant je sais que les variables ne peuvent pas être nommées de la même manière que certains langages de programmation existants. Si vous l'aviez expliqué, je serais très heureux et satisfait :) – 0x6B6F77616C74

+0

@kowalt Je l'ai fait, un peu –

+1

kowalt, pas les langages de programmation; conventions d'appel. Certains d'entre eux proviennent de certaines langues, mais quelques autres ne portent pas de noms de langue. – Joey

Questions connexes