Czytam System V Application Binary Interface i jest jedna część, której nie mogę zrozumieć.Dlaczego istnieje konwencja wywoływania dla tablic?
pierwsze, dokument stwierdza, że
Nie starano się określić ABI dla języków innych niż C
(strona 10).
Później, na stronie 20, tablice są klasyfikowane jako pamięć, wskaźnik etc .:
Klasyfikacja kruszyw (struktury i tablic) i typów związków działa następująco:
...
Klasyfikacja jest następnie używana do definiowania konwencji wywoływania - w jaki sposób wartości i ograniczenia na nich są przekazywane i zwracane z funkcji. Jeśli poprawnie odczytuję algorytm, tablicę można zaklasyfikować jako INTEGER, MEMORY lub SSE.
Ale w języku C tablice są zawsze przekazywane i zwracane jako wskaźniki. Dlaczego więc warto klasyfikować tablice iw jakiej sytuacji ma znaczenie klasa tablicy?
Pierwszy cytując samo przez się jest zrozumiałe, ponieważ C oznacza [językiem] (https: // pl .wikipedia.org/wiki/Lingua_franca) ze świata uniksowego. Jeśli chodzi o drugi cytat, to że C przekazuje tablice jako wskaźniki (lub rater niech tablica zanika do wskaźnika do jego pierwszego elementu), to dlatego, że C działało od początku i tak powinna być określona specyfikacja C. –
[Powiązane pytanie] (http://stackoverflow.com/questions/38800044/what-kind-of-c11-data-type-is-an-array- recording- to- the-amd64-abi). –