Assignation de tableaux en C et C
C et C permettent l'affectation de tableaux par membre dans les structures mais pas en général. Ce comportement est le résultat de l'évolution historique des langages.
Initialement, les tableaux en C étaient modélisés comme des pointeurs en mémoire, appelés « tableaux cuits ». Lorsque les structures ont été introduites, les tableaux au sein des structures ont été traités différemment pour garantir la sécurité de la mémoire. Cela permettait d'attribuer des tableaux par membre au sein des structures sans compromettre la compatibilité avec le code existant.
En revanche, l'affectation de tableaux en dehors des structures n'était pas prise en charge dans la conception originale de C. Cela était dû à des préoccupations concernant le rebasage du pointeur et au manque d'informations sur la taille des tableaux déclarés comme paramètres de fonction. Pour éviter d'introduire des bogues et des problèmes de compatibilité, l'affectation explicite à l'aide de memcpy a été préférée.
Cependant, comme l'a noté Luther Blissett, la spécification de C concernant l'affectation de structure permet explicitement l'affectation par membre des tableaux contenus. Il s'agissait d'un effet secondaire involontaire de la conception, mais il a été adopté comme un moyen de faciliter la copie de données au sein des structures sans rompre les modèles établis.
Par conséquent, la prise en charge de l'affectation des tableaux par membre au sein des structures, mais pas généralement, est un héritage des premières décisions de conception du C et de l'évolution ultérieure du langage, aboutissant à une distinction entre les tableaux intégrés dans des structures et les tableaux utilisés indépendamment.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!