GNU coding style really hurts my eyes.
Tuesday, September 21, 2010 10:24:28 PM
Étoilé
After spending a little while poking at the GNU runtime, I came to two conclusions:
- It was at least twice as complicated as it needed to be.
- GNU coding style really hurts my eyes.
En si, había entendido la frase (y compartido también), pero nunca me vi en la necesidad de escribir/leer código con el estilo GNU (más allá de una que otra funcioncita perdida por ahí). Hace un tiempito, me metí a ver e intentar aportar al proyecto GNUStep (algo he hecho, he cambiado las macros de manejo de memoria, y he corregido un pequeño bug en una clase que no recuerdo), sin embargo, ahora quería ayudar un poco más profundo, cambiar unas funciones, detectar bugs y corregirlos, etc. Ahí es cuando uno empieza a ver código del estilo GNU.
Para poner en contexto, ésto es código GNU:
int una_funcion()
{
int a;
int b;
printf("Ingrese un número: ");
scanf("%d", &a);
printf("Ingrese un número: ");
scanf("%d", &b);
if(a == b)
{
printf("a es igual a b");
}
else if(a > b)
{
printf("a es mayor a b, igualando valores");
while(a > b)
{
a--;
}
printf("valores igualados");
}
else
{
printf("b es mayor a a");
}
return 0;
}
mmmta madre que costó escribir eso. Un código simple que no hace nada (lo de los scanf y todo eso me jode el buffer, pero bue, la base está), pide dos valores, si ambos son iguales, imprime que son iguales, si a es mayor, muestra la leyenda de que a es mayor y los iguala, y si no, dice que b es mayor. Lo importante es la forma en que está escrito que es la que la gente de GNU usa. Para ponerlo en contexto (y el por qué a mi me hace tanto mal), así es como yo hubiese escrito el código anterior:
int una_funcion()
{
int a;
int b;
printf("Ingrese un número: ");
scanf("%d", &a);
printf("Ingrese un número: ");
scanf("%d", &b);
if(a == b){
printf("Ambos valores son iguales");
}else if(a > b){
printf("a es mayor a b, igualando valores");
while(a > b){
a--;
}
printf("valores igualados");
}else{
printf("b es mayor a a");
}
return 0;
}
Otra cosa diferente, que tiene el estilo GNU,es que las llaves son opcionales cuando en una estructura de control le sigue una instrucción. Yo no, yo siempre uso llaves.













