Войти
ПрограммированиеФорумОбщее

Функции вызываемые по умолчанию C/С++ (2 стр)

Страницы: 1 2 3 Следующая »
#15
8:59, 10 сен 2019

gcc-only

#16
9:12, 10 сен 2019

Aroch

Если бы я хотел рассказать тут про статические локальные переменные, я бы так и сделал.

#17
9:25, 10 сен 2019

Ghost2
гуманитарий?

+ Показать
#18
9:40, 10 сен 2019

Aroch

Клоун?

#19
10:05, 10 сен 2019

Ghost2
поправка, агрессивный гуманитарий.

#20
10:51, 10 сен 2019

Aroch

Кисакуку. Гуманитарии обычно лезут с каким-нибудь частным случаем, у которого тоже есть частные случаи, к абсолютно верному утверждению, доказывая что оно не верно (попутав ключевое слово static с длительностью хранения). Потом приводят ссылку, в которой то самое утверждение подтверждается документально.

static storage duration. The storage for the object is allocated when the program begins and deallocated when the program ends. Only one instance of the object exists. All objects declared at namespace scope (including global namespace) have this storage duration, plus those declared with static or extern.

А затем начинаются качели по поводу степени гуманитарности.

> агрессивный
Очнись уже. Кто из нас агрессивный мы уже выяснили в той теме, где ты доказывал, что спрайты при упаковке нужно обязательно сортировать. А когда тебе на баги в твоем алгоритме указали началось вот то же самое, что сейчас.

#21
10:58, 10 сен 2019

в SDL2 такое делается грязными хаками.

Если не смущает наличие грязных хаков, можно подсмотреть

#22
11:42, 10 сен 2019

Ghost2
https://en.cppreference.com/w/cpp/language/initialization

Non-local variables

All non-local variables with static storage duration are initialized as part of program startup, before the execution of the main function begins (unless deferred, see below). All variables with thread-local storage duration are initialized as part of thread launch, sequenced-before the execution of the thread function begins. For both of these classes of variables, initialization occurs in two distinct stages:
Static initialization
1) If permitted, Constant initialization takes place first (see Constant initialization for the list of those situations). In practice, constant initialization is usually performed at compile time, and pre-calculated object representations are stored as part of the program image. If the compiler doesn't do that, it still has to guarantee that this initialization happens before any dynamic initialization.
2) For all other non-local static and thread-local variables, Zero initialization takes place. In practice, variables that are going to be zero-initialized are placed in the .bss segment of the program image, which occupies no space on disk, and is zeroed out by the OS when loading the program.

есть статические переменные которые подразумевают под собой как локальные так и не локальные. Если ты рассматриваешь случай для не локальных, то так и говори что не локальные статические переменные, а не мешай всё под одну гребенку.

Ghost2
> где ты доказывал, что спрайты при упаковке нужно обязательно сортировать. А
> когда тебе на баги в твоем алгоритме указали началось вот то же самое, что
> сейчас.
это ты про эту https://gamedev.ru/code/forum/?id=222128 тему в которой ты слился и от которой у тебя до сих пор пригорает? Спасибо что напомнил, "теоретик" :) В кавычках потому как и теоретик из тебя не какой.

#23
12:50, 10 сен 2019

Aroch

> рассматриваешь случай для не локальных, то так и говори что не локальные
Статические локальные переменные это частный случай статических переменных. Я рад, что ты знаешь про них так много. До этимологии же обычно докапываются или гуманитарии, или бабы. Если к первым ты себя почему-то не причисляешь, то у меня для тебя плохие новости.

> тему в которой ты слился
Вроде слился там ты. Нашел баг в говнокоде своем или так и продолжаешь сортировкой его исправлять? И да, мне там сказали два раза спасибо, а ты только срач развел в том топике, будучи вообще не в теме. Хоть бы на один вопрос ответил адекватно, что мне, что MrShoor.

> кавычках потому как и теоретик из тебя не какой
Пускай так. А никакой пишется слитно.

#24
12:56, 10 сен 2019

Я забыл совсем про тему :)
Смысл в инициализации/деструкторе отдельной статически линкованой библиотеки/модуля. Что то вроде CRT инициализации

#pragma section(".CRT$XCA",long,read)

Мне нужен был __DTOR_LIST__. Пока решил по другому, но разобраться как им пользоваться надо, еще понадобиться, а то пока невкурил.
Под MinGw для школьников небольшую либку пилю для примера, чтобы после завершения приложения ни чего не закрывалось "press any key". В Code::Blokcs есть галочка по умолчанию, но работает только для консоли, а для "gui application" закрывается. В общем такая затычка.

#25
13:25, 10 сен 2019

foxes

Это можно реализовать только хаками вроде __attribute__((destructor)) или возней с секциями в VC.

#26
13:30, 10 сен 2019

foxes
Пробовал #pragma startup?

#27
13:30, 10 сен 2019

VoidSpirit
Нет еще, попробую позже.

#28
13:30, 10 сен 2019

#define main appEntryPoint

а потом в либе
main()
{
  appEntryPoint();
}

пользоваться только в случае нарушения чувства прекрасного))

#29
14:28, 10 сен 2019

VoidSpirit
> Пробовал #pragma startup?
Походу не пашет

warning: ignoring #pragma exit _aExit

Вот эта тема рабочая.

+ Показать
Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.