Как реализовать функцию из пространства имен?

#c #function #namespaces #implementation

#c #функция #пространства имен #реализация

Вопрос:

По сути, это мой исходный код.

 namespace name {  
    int func (void);  
}

int main (void) {  
    name::int func (void) {  
        //body
    }  
    return 0;  
}
  

Теперь я хочу написать эту функцию, объявленную в пространстве имен, в другом месте.

Ответ №1:

Вы не можете определить функцию внутри другой функции подобным образом. Есть два варианта:

Повторно откройте пространство имен и определите функцию внутри него:

 namespace name {
    int func() {
        // body
    }
}
  

Вне пространства имен (а также вне определения любой функции или класса) определите ее, используя ее полное имя:

 int name::func() {
    // body
}
  

Ответ №2:

Вы не можете определить функцию внутри функции в C .

Это работает

 namespace name {  
    int func (void);  
}
int name::func (void) {  
        //body
} 
int main (void) {  

    return 0;  
}