Neden boyutu int boyutu(int) doğru mu yanlış mı?
sizeof
operatör herhangi bir veri türü ve anlatım boyutunu hesaplamak için kullanılır ve işlenen bir ifade olduğunda, parantez göz ardı edilebilir.
int main()
{
int a;
sizeof int;
sizeof( int );
sizeof a;
sizeof( a );
return 0;
}
sizeof
ilk kullanım Diğerleri doğru olsa da yanlış.
Gcc kullanarak derlenmiş olduğunda, aşağıdaki hata iletisi verilir:
main.c:5:9: error: expected expression before ‘int’
Benim sorum C standart böyle bir operasyona izin vermiyor neden olur. sizeof int
herhangi bir belirsizlik neden olur?
CEVAP
Aşağıdaki belirsiz olabilir:
sizeof int * 1
(sizeof (int*)) 1
(sizeof(int)) * ( 1)
?
Belli ki C dili belirsizlik çözmek için bir kural tanıttı olabilir, ama rahatsız etmedi neden acaba. Dil gibi duruyor, bir tür belirleyici görünüyor asla "çıplak" bir ifade, ve öyle olması için kurallara gidermek ister ikinci *
türü veya bir aritmetik operatör.
Mevcut gramer zaten sizeof (int *) 1
potansiyel belirsizliÄŸi gidermek. (sizeof(int*)) 1
deÄŸilsizeof((int*)( 1))
.
C biraz benzer bir işlev tarzı dökme sözdizimi ile çözmek için bir sorun var. int(0)
yazma ve typedef int *intptr; intptr(0);
, yazabilirsiniz ama int*(0)
yazamazsın. Bu durumda, kararda "türü bir basit tür adı olması gerekir, ya da sonunda noktalama işareti boşluk var olabilecek herhangi bir eski tip kimliği olamaz." çıplak. Belki sizeof
aynı kısıtlamaları ile tanımlanmış olabilir, emin değilim.
Neden boyutu(x ) x artım değil mi?...
Neden't bir yapı her üyenin boyut...
Neden gcc eğer hız yerine BOYUTU için ...
boundingRectWithSize NSAttributedStrin...
Neden Twitter Bootstrap Yazı tipi Boyu...