Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++, Dziwne zachowanie zmiennych globalnych

Ostatnio zmodyfikowano 2026-09-27 11:34
Autor Wiadomość
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.
P-184665
czerwonymoskit
Temat założony przez niniejszego użytkownika
» 2026-09-26 08:54:42
P-184666
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
P-184667
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

C/C++
// ------- example usage
// ------- file x.cpp:
constinit int x = 21;

// ------- file main.cpp:
extern constinit int x;
 

P-184669
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
C/C++
#pragma once
extern int liczba_int;

liczba.cpp
C/C++
#include "liczba.hpp"
int liczba_int = 10;

main.cpp
C/C++
#include "liczba.hpp"

ing main() {
   
   
std::cout << liczba_int << "\n";
   
return 0;
}
P-184671
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.

C/C++
#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 "przerwaMecz.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 "skladyN.hpp" // wywalic

#include "matchTest.hpp"

#include "errorF.hpp"
//#include "errorFunc_2.hpp"

#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <sstream>


extern HANDLE hOut;

// zmienne globalne
extern short pilka[ 2 ];
extern short caseP[ 2 ];

// i = 0, k = 0, o = 0, p = 0; // zmienne pomocnicze oraz j, jj, jjj dla for

extern short tempInt;
//extern bool tempBool;

extern short referee; // sedzia
extern bool refHarsh;
[ cpp / ]
P-184673
czerwonymoskit
Temat założony przez niniejszego użytkownika
» 2026-09-27 10:55:57
Tak mam plik zmienne.hpp. Pragma once jest lepsza?
P-184674
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.
P-184675
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona