J'ai du mal à comprendre les réponses à cette question.Entièrement dactylographié au moment de la compilation
Donner le code suivant:
int: size, size2, j;
float: x;
array[1:30] of int: nums;
Pour chaque instruction d'affectation ci-dessous, le cercle peut ou ne peut pas dire si elle peut ou ne peut pas être de type vérifiée entièrement au moment de la compilation. Supposons que la plage d'indice d'un tableau est considérée comme faisant partie de son type. Supposons que le dépassement numérique n'est pas considéré comme une erreur de type.
A. size = size2 + 1; --> Answer: CAN
B. x = size; --> Answer: CAN
C. nums[j] = 33; --> Answer: CANNOT
D. nums[3] = nums[4]; --> Answer: CAN
E. nums[j] = nums[j+1]--> Answer: CANNOT
Maintenant, compilez les erreurs de temps se produisent lorsque le programme est en cours de conversion en code machine où ces erreurs d'exécution se produisent lors de l'exécution d'un programme. J'ai également lu sur la question de débordement de pile suivante concernant les erreurs de compilation et d'exécution: Runtime vs Compile time. Après avoir étudié les deux sujets, je suis toujours confus comment les réponses suivantes ont été dérivées. Toute aide serait très appréciée.