typedef в c и эквивалентность типов - PullRequest
1 голос
/ 29 октября 2009

Если я сделаю это:

typedef int x[10];
x a;

Это так же, как: int a[10];?

Ответы [ 3 ]

4 голосов
/ 29 октября 2009

Да.

3 голосов
/ 29 октября 2009

Да, это то же самое. Если вы хотите узнать больше, перейдите сюда .

1 голос
/ 06 ноября 2009

Да, если мы говорим о синтаксисе. Но подумайте об этом:

typedef int MyType[5];

/* Some code, large enough fragment */

int func (MyType var)
{
  /* Something that changes */
  return 0;
}

Если вы видите только объявление func (), вы можете думать, что оно получает var по значению, поэтому любое изменение внутри функции является локальным. Но, как на самом деле MyType это массив, который изменяет указатель var внутри func () Вы можете изменить фактическую переменную вызывающего абонента.

Итак, говоря о понятии, это не то же самое.

...