Форум программистов, компьютерный форум 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 и вывести его в выходной поток. подробнее

Показать сообщение отдельно
DrOffset
7089 / 4230 / 950
Регистрация: 30.01.2014
Сообщений: 7,006
22.07.2014, 18:44
Цитата Сообщение от LighterV Посмотреть сообщение
Есть какое-нибудь обоснование этому? Может быть static функции выполняются быстрее или что-нибудь ещё?
Android - это Linux. В Linux, когда ты линкуешь бинарник, если не предпринять специальных телодвижений, по-умолчанию экспортируются все функции и переменные с внешним связыванием. Пометив нужные только внутри программы (и\или модуля) функции как static, мы банально уменьшаем размер бинарника и избавляемся от потенциальных конфликтов имен при линковке. Особенно это актуально при написании модулей ядра.
В новых GCC появились средства контроля видимости имен, но static до сих пор используют. Переносимость важнее

Это в дополнение к уже сказанному в этой ветке.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru