Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 June 21

W

Wild_Wind in IT KPI C/C++ ХВ (не UB)
Wild_Wind
/* config,hpp */
static int vlaue = 42;

/* A.hpp */
#include "config.hpp"

/* A.cpp */
#include "A.hpp"

vlaue = 99;
/* end A.cpp*/
Вот так, если vlaue должна быть мутабельной (изменяемой).
источник

Т

Тёма in IT KPI C/C++ ХВ (не UB)
Работает! И без головной боли, спасибо.
источник

W

Wild_Wind in IT KPI C/C++ ХВ (не UB)
Нз.
источник

A

András in IT KPI C/C++ ХВ (не UB)
Wild_Wind
/* config,hpp */
static int vlaue = 42;

/* A.hpp */
#include "config.hpp"

/* A.cpp */
#include "A.hpp"

vlaue = 99;
/* end A.cpp*/
Хіба можна змінювати статичну глобальну змінну з іншого файлу?
источник

OS

Oleksandr Syrotiuk in IT KPI C/C++ ХВ (не UB)
András
Хіба можна змінювати статичну глобальну змінну з іншого файлу?
Можна, #include просто вставляет содержимое файла в файл. На етапе компиляции оно увидит переменную, так как содержимое h-ник будет вставлено в cpp. Проблема тут в том, что два разных инклюда, в двух разных файлах приведут к появлению двух независимых статических переменных в двух отдельных юнитах трансляции.
источник

A

András in IT KPI C/C++ ХВ (не UB)
Oleksandr Syrotiuk
Можна, #include просто вставляет содержимое файла в файл. На етапе компиляции оно увидит переменную, так как содержимое h-ник будет вставлено в cpp. Проблема тут в том, что два разных инклюда, в двух разных файлах приведут к появлению двух независимых статических переменных в двух отдельных юнитах трансляции.
Ну просто в сішці з цим трохи проблеми
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Не понял шо ты имеешь ввиду
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
András
Хіба можна змінювати статичну глобальну змінну з іншого файлу?
Э.. вроде нет
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Типа, static это.. анонимный неймспейс, если хотите
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Вне файла его не поменяете
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Потому шо обратиться к нему не выйдет
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Менять можно, достаточно получить его адрес
Так-то просто в таблице экспорта не будет фигурировать
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Ну лол, тогда все можно менять
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
И приватные поля вне класса
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Не всё
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
И анонимные
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Ага, все кроме литералов
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
R/O сегменты
источник

OS

Oleksandr Syrotiuk in IT KPI C/C++ ХВ (не UB)
Alexander Pavlyuchuk
Типа, static это.. анонимный неймспейс, если хотите
Они говорят про h, а не про с/cpp
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Aleksey Belkevich
R/O сегменты
Ну так все кроме литералов, да))
источник