Форум программистов, компьютерный форум CyberForum.ru

Почему в файле все функции объявлены как static? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При вынесении определения всегда ли нужно указывать функцию как inline явно? http://www.cyberforum.ru/cpp-beginners/thread1231937.html
Бьярни пишет Если в описании класса функция-член определена, а не только описана, то она считается подстановкой. Это значит, например, что при трансляции функций, использующихchar_stack из предыдущего примера, не будет использоваться никаких операций вызова функций, кроме реализации операций вывода! class char_stack { int size; char* top;
C++ Область видимости анонимного объекта при вызове функции Доброго дня. Хотел поинтересоваться: когда уничтожится анонимный объект, переданный как параметр функции? #include <stdio.h> #include <string> using namespace std; class Obj{ private: string s; http://www.cyberforum.ru/cpp-beginners/thread1231879.html
STL Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести C++
Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести в выходной поток. Добавлено через 20 минут пример, но он с ошибками #include <vector> #include <algorithm> #include <iostream> #include <functional> using namespace std;
C++ STL Заполнить строку латинским алфавитом и вывести ее в выходной поток
Заполнить строку латинским алфавитом и вывести ее в выходной поток. С++ Добавлено через 20 минут вот пример выполнения, но в нем ошибки #include <string> #include <iostream> using namespace std; int main() { string s;
C++ STL Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток http://www.cyberforum.ru/cpp-beginners/thread1231847.html
Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток. Добавлено через 19 минут пример, но в нем ошибки #include <vector> #include <iostream> #include <iomanip> using namespace std; int main() {
C++ STL Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток. подробнее

Показать сообщение отдельно
HighPredator
 Аватар для HighPredator
5342 / 1725 / 320
Регистрация: 10.12.2010
Сообщений: 5,108
Записей в блоге: 3
24.07.2014, 08:48     Почему в файле все функции объявлены как static?
DrOffset, я по ходу немного в танке... Разве есть в исполняемых файлах (не в библиотеках всяких) секция экспорта?

Добавлено через 23 минуты
Вот пример:
main.c:
C
1
2
3
4
5
6
7
8
#include <stdio.h>
#include "test.h"
 
int main(void)
{
  TestFunction1(8);
  return 0;
}
test.h:
C
1
2
3
4
5
6
#ifndef _TEST_H_
#define _TEST_H_
 
void TestFucntion1(int a);
 
#endif
test.c:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include "test.h"
 
static void TestFunction2(int* p_a);
 
void TestFunction1(int a)
{
  TestFunction2(&a);
  printf("%d\n",a);
}
 
static void TestFunction2(int* p_a)
{
  *p_a = 8;
}
Выхлоп nm:
_bsd_init_routine D 4563404648 8
crt0_64.s f -
crt0_data d 4563404372 104
crt0_data d 4563404704 8
__crt0v d 4563404696 8
__crt0v U -
__C_runtime_pstartup B 4563404768 8
d 4563404744 8
__dce_compat_init_routine D 4563404672 8
errno d 4563404736 8
errno U -
exit d 4563404760 8
exit U -
.exit T 4294968872
.exit t 4294968872 40
glink64.s f -
glink64.s f -
.main T 4294968448
main.c f -
__malloc_user_defined_name d 4563404728 8
__malloc_user_defined_name U -
_malloc_user_defined_name D 4563404624 8
__mod_init d 4563404720 8
__mod_init U -
__n_pthreads d 4563404712 8
__n_pthreads U -
_nsl_init_routine D 4563404664 8
printf d 4563404752 8
printf U -
.printf T 4294968832
.printf t 4294968832 40
__pth_init_routine D 4563404640 8
p_xargc D 4563404632 4
p_xargv D 4563404680 8
p_xrc D 4563404692 4
p_xrcfg D 4563404688 4
../../../../../../../src/bos/usr/ccs/lib/libc/__threads_init.c f -
__start D 4563404584 16
.__start T 4294967800
.__start t 4294967800 173
_$STATIC d 4563404480 101
t 4294968064 384
t 4294968448 128
t 4294968576 256
t 4294968912 4
test.c f -
.TestFunction1 T 4294968640
.TestFunction2 t 4294968576
__threads_init D 4563404600 24
.__threads_init T 4294968064
.__threads_init@AF2_1 t 4294968128
TOC d 4563404624
_xti_tli_init_routine D 4563404656 8
Как видно, обе функции там есть.
 
Текущее время: 11:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru