En programación informática, la notación húngara es un sistema usado normalmente para crear los nombres de variables. También se utiliza para nombrar las instancias de objetos en lenguajes de programación visuales. El nombre de la notación proviene del hecho de que su inventor, Charles Simonyi, nació en Hungría.
Consiste en prefijos en minúsculas que se añaden a los nombres de las variables, y que indican su tipo. El resto del nombre indica, lo más claramente posible, la función que realiza la variable.
Ejemplos
Prefijo Significado
b Booleano (int)
by BYTE o UCHAR (unsigned char)
c Carácter (un byte)
dw Entero largo de 32 bits sin signo (double word)
f Flags empaquetados en un entero de 16 bits
h Manipulador de 16 bits (handle)
l Entero largo de 32 bits
lbl Objeto Label
lp Puntero a entero largo de 32 bits
lpfn Puntero largo a una función que devuelve un entero
lpsz Puntero largo a una cadena terminada con cero
n Entero de 16 bits
p Puntero a entero de 16 bits
e Enumeración
pt Coordenadas (x, y) empaquetadas en un entero de 32 bits
rgb Valor de color RGB empaquetado en un entero de 32 bits
sz Cadena terminada en cero
txt Cajas de texto
w Entero corto de 16 bits sin signo (word)
Ejemplos
* nContador: la variable es un entero que se usará como contador.
* szNombre: una cadena terminada con cero la cual almacena un nombre.
* bRespuesta: una variable booleana que almacena una respuesta.
* txtHora: una instancia de un objeto textbox que almacena la hora.
txtbox1: txt"cve".
Hasta acá la fuente es http://es.wikipedia.org/wiki/Notaci%C3%B3n_h%C3%BAngara
Por otro lado parte del sistema contempla el modo de anotar las variables y la comprensión de las mismas.
En un sentido más categórico, si tengo un contador, primero va las letras que me dicen que es un número entero (n) y luego el nombre de la variable que sea significativo para su uso.
Por ejemplo un contador que me sirve para saber cuantos hay conectados en una pagina: int nContPerPag; n de número entero, Cont de contador, Per de personas, Pag de pagina.
Pero al mismo tiempo, para simplificar la escritura de la pagina podemos observar que también tenemos la opción de hacer notaciones al margen, así si no comprendemos para que se usa determinada variable, anotamos al lado su uso o función.
int CPP = 0; //Cuenta la cantidad de personas conectadas a la pagina.
Por otro lado, en el lenguaje C# (en el que mas me manejo por ahora) tenemos la posibilidad de hacer notaciones de otra clase (no conozco si funciona de la misma manera en otros compiladores aunque en Delfi si)
que es poniéndo /* Se escribe comentario en el centro */ Esto permite hacer esto:
int /*pongo variable contadora*/ Contador = 0;
Del mismo modo, el compilador permite hacer saltos de linea con este sistema cuando ponemos los dos "/**/"
quedaría así:
/*Se escribe acá
* acá
* Y acá sin afectar el código
*/
Por último, un reto a la gente que me lea: Doy 10 puntos de premio a quien me sepa decir como quito las tabulaciones de T! cuando se escriben comentarios y post (las tabulaciones son espacios excesivos que se dejan entre palabra y palabra).
Consiste en prefijos en minúsculas que se añaden a los nombres de las variables, y que indican su tipo. El resto del nombre indica, lo más claramente posible, la función que realiza la variable.
Ejemplos
Prefijo Significado
b Booleano (int)
by BYTE o UCHAR (unsigned char)
c Carácter (un byte)
dw Entero largo de 32 bits sin signo (double word)
f Flags empaquetados en un entero de 16 bits
h Manipulador de 16 bits (handle)
l Entero largo de 32 bits
lbl Objeto Label
lp Puntero a entero largo de 32 bits
lpfn Puntero largo a una función que devuelve un entero
lpsz Puntero largo a una cadena terminada con cero
n Entero de 16 bits
p Puntero a entero de 16 bits
e Enumeración
pt Coordenadas (x, y) empaquetadas en un entero de 32 bits
rgb Valor de color RGB empaquetado en un entero de 32 bits
sz Cadena terminada en cero
txt Cajas de texto
w Entero corto de 16 bits sin signo (word)
Ejemplos
* nContador: la variable es un entero que se usará como contador.
* szNombre: una cadena terminada con cero la cual almacena un nombre.
* bRespuesta: una variable booleana que almacena una respuesta.
* txtHora: una instancia de un objeto textbox que almacena la hora.
txtbox1: txt"cve".
Hasta acá la fuente es http://es.wikipedia.org/wiki/Notaci%C3%B3n_h%C3%BAngara
Por otro lado parte del sistema contempla el modo de anotar las variables y la comprensión de las mismas.
En un sentido más categórico, si tengo un contador, primero va las letras que me dicen que es un número entero (n) y luego el nombre de la variable que sea significativo para su uso.
Por ejemplo un contador que me sirve para saber cuantos hay conectados en una pagina: int nContPerPag; n de número entero, Cont de contador, Per de personas, Pag de pagina.
Pero al mismo tiempo, para simplificar la escritura de la pagina podemos observar que también tenemos la opción de hacer notaciones al margen, así si no comprendemos para que se usa determinada variable, anotamos al lado su uso o función.
int CPP = 0; //Cuenta la cantidad de personas conectadas a la pagina.
Por otro lado, en el lenguaje C# (en el que mas me manejo por ahora) tenemos la posibilidad de hacer notaciones de otra clase (no conozco si funciona de la misma manera en otros compiladores aunque en Delfi si)
que es poniéndo /* Se escribe comentario en el centro */ Esto permite hacer esto:
int /*pongo variable contadora*/ Contador = 0;
Del mismo modo, el compilador permite hacer saltos de linea con este sistema cuando ponemos los dos "/**/"
quedaría así:
/*Se escribe acá
* acá
* Y acá sin afectar el código
*/
Por último, un reto a la gente que me lea: Doy 10 puntos de premio a quien me sepa decir como quito las tabulaciones de T! cuando se escriben comentarios y post (las tabulaciones son espacios excesivos que se dejan entre palabra y palabra).