Comment puis-je #définir un tableau en C?
Est la syntaxe suivante pour définir un tableau valide la syntaxe du C?
#define array[] { \
for (j=0; j<N_frequencysteps;j++) \
{ \
array[j] = (function); \
} \
}
Si non, comment puis-je définir un tableau en C?
- avez-vous essayé de le compiler? La rapide réponse est non, ce n'est pas une erreur de syntaxe.
- Ugh. Oui, entrez le code ici.
- Je pense que SI il ne m'aime pas rouler de retour des erreurs.
- Pouvez-vous décrire ce que vous appelez un tableau? Peut-être en n de comparaison à une autre langue?
- Pour un aperçu de la définition, de l'initialisation, et à l'aide de tableaux, voir exforsys.com/tutorials/c-language/c-arrays.html.
Vous devez vous connecter pour publier un commentaire.
Cela dépend de comment vous définissez 'syntaxe valide'.
La C le pré-processeur de l'accepter comme un objet-comme macro.
Le compilateur C ne sera pas accepter la sortie comme légitime C.
Envisager une invocation:
Le compilateur C voit:
Qui est du charabia (même avec les "entrez le code ici" enlevé).
Comment pouvez-vous définir un tableau en C?
Vous pouvez également utiliser un initialiseur, mais vous pourriez obtenir des avertissements du compilateur, sauf si vous êtes approfondie:
Une possibilité: si vous souhaitez définir un tableau et l'initialiser avec les appels à une fonction spécifique, alors vous pourriez, je suppose, essayez:
Il pourrait être utilisé comme:
(À noter que cette initialiseur dépend d'une mise en œuvre détail de la macro - n'est pas une bonne idée. Mais je ne pense pas que j'ai jamais utiliser cette macro, de toute façon.) Il dépend de vous d'être en mode C99 si vous avez plus d'un de ces éléments dans un bloc de code particulier (puisqu'il serait alors mélange de code avec déclarations) - et aussi parce que la déclaration dans le
for
boucle est uniquement pris en charge en C++ et C99, pas en C90.warning: missing whitespace after the macro name
, dont un au moins est un indice que c'est une mauvaise idée.array
macro. Et de l'espace, puis met l'accent sur la façon dont les affreuses qu'il est.Cela ressemble vraiment mal. Pourquoi ne pas définir de tableau dans la voie normale?