C++, Dziwne zachowanie zmiennych globalnych
Ostatnio zmodyfikowano 2026-09-27 11:34
czerwonymoskit Temat założony przez niniejszego użytkownika |
» 2026-09-26 08:53:47 Że np w środy zmieni a w piątki nigdy. |
|
czerwonymoskit Temat założony przez niniejszego użytkownika |
» 2026-09-26 08:54:42 |
|
skovv |
» 2026-09-26 09:27:48 Na 100% masz w kodzie coś co zmienia te wartości - nic innego nie może się tu dziać. Przejrzyj cały kod i znajdziesz |
|
nanoant20 |
» 2026-09-26 13:09:13 od C++20 możesz używać constinit – bezpieczna inicjalizacja zmiennych globalnych, pomaga uniknąć problemów z kolejnością inicjalizacji globalnych zmiennych możesz przeczytać sobie fragment książki "Opus magnum C++. Wyprawa w głąb C++20. Tom 5" na helion https://helion.pl/ksiazki/opus-magnum-c-wyprawa-w-glab-c-20-tom-5-jerzy-grebosz,omcpp5.htm#format/d constinit int x = 21;
extern constinit int x;
|
|
tBane |
» 2026-09-27 06:20:36 No więc, w *.hpp deklaruje się zmienną globalną z externem , a w *.cpp przypisuje jej wartość. liczba.hpp#pragma once extern int liczba_int;
liczba.cpp#include "liczba.hpp" int liczba_int = 10;
main.cpp#include "liczba.hpp"
ing main() { std::cout << liczba_int << "\n"; return 0; }
|
|
czerwonymoskit Temat założony przez niniejszego użytkownika |
» 2026-09-27 10:54:15 Na 100% masz w kodzie coś co zmienia te wartości - nic innego nie może się tu dziać. Przejrzyj cały kod i znajdziesz Pewnie tak. Choć dziwne jest to, że przy pierwszym ustalaniu początkowej taktyki zanim jeszcze mecz się uruchomi 1000 razy było dobrze , a ostatnio jeden raz zamienił ustawienia gospodarzy i gości. #ifndef ZMIENNE #define ZMIENNE
#include <iostream> #include <string.h> #include <windows.h> #include <ctime> #include <fstream> #include <conio.h> #include <cstdio>
#include "przesuniecie.hpp" #include "actionF.hpp" #include "case1_8.hpp" #include "case2_7.hpp" #include "case3_6.hpp" #include "case4_5.hpp" #include "dopalki.hpp" #include "fixtures_.hpp" #include "formZliczanie.hpp" #include "foul_.hpp" #include "jakiSide.hpp" #include "dolCzasu.hpp" #include "kapitan.hpp" #include "klocenie.hpp" #include "ktoWakcji.hpp" #include "moraleLowHigh.hpp" #include "odczytywanie.hpp" #include "offside_.hpp" #include "sedzia.hpp" #include "skillsD_.hpp" #include "skillsM_.hpp" #include "skillsA_.hpp" #include "sprawZalozen.hpp" #include "staleFragmenty.hpp" #include "tabelaDruzyny.hpp" #include "ustalaniePar.hpp" #include "wejscieBoisko.hpp" #include "healthZero.hpp" #include "wprowFirst_.hpp" #include "wprowGK_.hpp" #include "wyswAll.hpp" #include "wysw_11_res.hpp" #include "yellowRedCards.hpp" #include "zejscieBoisko.hpp" #include "zerowanie.hpp" #include "zmeczKont.hpp" #include "zmeczSumaAction.hpp" #include "zmeczZwykle.hpp" #include "zmianyPrzerwa.hpp" #include "taktyka.hpp" #include "wynInfoFunc.hpp"
#include "short_2T_7F.hpp" #include "short_3T_6F.hpp" #include "short_4T_5F.hpp" #include "short_4F_5T.hpp" #include "short_3F_6T.hpp"
#include "shoot_2F_7T.hpp"
#include "middle_2T_7F.hpp" #include "middle_3T_6F.hpp" #include "middle_4T_5F.hpp" #include "middle_4F_5T.hpp"
#include "long_2T_7F.hpp" #include "long_4T_5F.hpp"
#include "odbior_2T_7F.hpp"
#include "utrzymanie_2T_7F.hpp"
#include "wycofanie_2T_7F.hpp"
#include "moraleUpDown.hpp"
#include "mentPrzegrywajaca.hpp"
#include "zodiacSign.hpp" #include "teamName.hpp" #include "boiskoZawodnicy.hpp" #include "boiskoSektory.hpp" #include "pressButton.hpp" #include "newFormSideMenth.hpp" #include "identificationPosition.hpp" #include "coach.hpp" #include "wyjscieGoalkeeper.hpp" #include "caseP_.hpp" #include "soundBoisko.hpp" #include "sprawBledy.hpp" #include "powrot.hpp" #include "wlaczStalyFragment.hpp" #include "timeSedziaPrzerwa.hpp" #include "captPlayFree.hpp" #include "identPosAut.hpp" #include "przerwaKoniec.hpp" #include "ogolneCommentyZodiac.hpp" #include "karnyBezGola.hpp" #include "przesZmeczIden.hpp" #include "colorFunc.hpp" #include "przerwaMecz.hpp" #include "managerPressioFunc.hpp"
#include "matchTest.hpp"
#include "errorF.hpp" #include <SFML/Graphics.hpp> #include <SFML/Audio.hpp> #include <sstream>
extern HANDLE hOut;
extern short pilka[ 2 ]; extern short caseP[ 2 ];
extern short tempInt; extern short referee; extern bool refHarsh; [ cpp / ] |
|
czerwonymoskit Temat założony przez niniejszego użytkownika |
» 2026-09-27 10:55:57 Tak mam plik zmienne.hpp. Pragma once jest lepsza? |
|
czerwonymoskit Temat założony przez niniejszego użytkownika |
» 2026-09-27 10:57:34 Ale właśnie tam na początku używałem sporo zmiennych globalnych i, i2, i3. Całkiem bez sensu. Pozamieniałem to na zmienne lokalne. |
|
| 1 « 2 » 3 |