2012-09-05 3 views
-4
#define xyz 

static xyz myObject *__my_getitem (myObject* a, myObject *b) { 
    myObject *r; 
    ......... 
    ........ 
    return r; 
} 
  1. Что такое static?
  2. Что xyz делать с static
  3. Почему перед __my_getitem
  4. Какая разница betweern myObject* a и myObject *a (положение *)
+4

http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – fasked

+1

Ответы на ваши вопросы: изучите C++. – Bojangles

+1

Я предлагаю вам забрать книгу начинающих на C++ (или C), так как это очень простой материал. –

ответ

2

Что такое static?

Это разные вещи в разных контекстах; вам нужно будет прочитать свою книгу, чтобы понять все ее значения. В этом случае это означает, что функция доступна только в этом исходном файле, а не в том, что скомпилировано отдельно и затем связано с ней.

Что такое xyz Выполняется с static?

Вызывает путаницу. Это пустой макрос (определенный в первой строке), поэтому перед компиляцией программы препроцессор заменит его ничем.

Почему перед __my_getitem

** после типа изменением типа указателя; поэтому это означает, что функция возвращает указатель на myObject.(Кстати, вы никогда не должны объявить имя с двумя последовательными _ символов, имена, как, которые зарезервированы.)

Какая разница betweern myObject* a и myObject *a (положение *)

В настоящее вообще; пробел никогда не изменяет значение программы, кроме случаев, когда это необходимо для разделения токенов. Некоторые люди сражаются с святыми войнами над семантическими последствиями этих двух стилей, но на языке все равно.

+0

Спасибо Mike .... Это было действительно полезно –

2

Что такое статические *?

Определения функций, предваряемые «статическими», имеют ограниченный объем. Их можно увидеть и использовать только в том же исходном файле. Вы сделали бы это, когда у вас есть функция, которая не имеет значения за пределами обработки, происходящей в текущем файле, или вы хотите ограничить использование, чтобы его можно было модифицировать в будущем с меньшими последствиями из-за его ограниченного объема.

Что хуг делать со статическим

В данном конкретном случае, хуг заменяется ничего, так что ничего не делает. В общем случае, скорее всего, это будет изменяться, как компилятор генерирует эту функцию, изменяя «соглашение о вызове». То есть, xyz будет иметь какое-то значение для компилятора и не является частью языка C.

Почему звездочка перед __my_getitem

Это показывает, что функция __my_getitem возвращает указатель на MyObject.

В чем разница между MyObject * а и MyObject * а (позиция *)

Ничего, как синтаксис является гибким.

+0

wow .... grt desripctio @scooter ... спасибо –

Смежные вопросы