Cómo implementar beaglebone black para obtener datos fpga
Cómo implementar beaglebone black para obtener datos fpga
#define SQ(y) (y)*(y)
main(){
int a, sq;
printf("ingrese un número: "
scanf("d", amp;
sq=SQ(a 1);
printf("sq=d\n", sq);
}
La primera línea de arriba El ejemplo es una definición macro, el parámetro formal es y. El parámetro real en la llamada de macro en la séptima línea del programa es un 1, que es una expresión. Cuando se expande la macro, use un 1 para reemplazar y, y luego use (y)*(y) para reemplazar SQ. y obtendrá la siguiente declaración:
sq=(a 1)*(a 1);
Esto es diferente de llamar a una función. Cuando se llama a una función, el valor de la misma. La expresión del parámetro real debe calcularse y luego asignarse al parámetro formal. En la sustitución de macros, la expresión del parámetro real se sustituye directamente tal como está sin cálculo.
4. En las definiciones de macros, los parámetros formales dentro de las cadenas suelen estar entre paréntesis para evitar errores. En la definición de macro del ejemplo anterior, y de la expresión (y)*(y) está entre paréntesis, por lo que el resultado es correcto. Si elimina los paréntesis, cambie el programa a la siguiente forma:
Ejemplo 9.6