Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂
Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.
Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.
#define MACRO 5
...
int var = 10;
#undef MACRO
#define MACRO var
Nejsem si teda jistej, jestli to vůbec jde... Díky
var
. A to je taky ta jediná úplná jistota, kterou máš.
Dost nejasné naopak je, jak si vlastně představuješ, že makra fungují.
template<char * context, int i> class Macro { enum { value = i}; } template<<int i> class Macro<"kontext1"> { enum { value = 10}; }popripade jeste by sly pouzit namespaces.
namespace Kontext1 { enum makro { value = 10 }; } namespace Kontext2 { enum makro { value = 5 }; } a pak uz jen: using namespace Kontext1;
#ifdef MAKRO 5
int a = 0;
#elif MAKRO 3
int a = 1;
#endif
A jediný problém je, že nevím, jak makro předefinovat, aby mělo hodnotu nějaké proměnné
int MACRO = 5; ... MACRO = 3;
#define MS_NOSEC (1 << 28)
static void foo(void)
{
printf("%d\n", MS_NOSEC);
}
preprocesor vyexpanduje vsechny makra a vlozi jejich obsah na misto jmnena makra. vysledny kod pro preklad bude vypadat takhle
...
printf("%d\n", (1 << 28));
...
z toho plyne i tvuj problem. #define MACRO var vyexpanduje na symbol var nebo jinimy slovy, prejmenuje symbol var na MACRO
#define MACRO 1
static void foo(void)
{
printf("%d\n", MACRO);
#undef MACRO
#define MACRO var
printf("%d\n", MACRO);
}
se po preprocesoru stane
...
printf("%d\n", 1);
printf("%d\n", var);
...
Jedine, kdy se kod prelozi je, kdyz var bude deklarovane. V tomhle pripade to nutne musi byt promnenna.
Vytvareni takoveho kodu vede pouze a jedine k chybam a necitelnosti. Timhle zpusobem to opravdu nepouzivej. A ono, predefinovani makra se
opravdu deje, ale musi to mit svuj smysl. Makra jsou uzitecna, dobra, ale opatrne na ne.
/*
* max() macros that also do strict type-checking
*/
#define max(x, y) ({ \
typeof(x) _max1 = (x); \
typeof(y) _max2 = (y); \
(void) (&_max1 == &_max2); \
_max1 > _max2 ? _max1 : _max2; })
#define gen_localtime(name) \
static inline int localtime_##name(time_t *t) \
{ \
struct tm *lt = localtime(t); \
if (!lt) \
die_errno("localtime"); \
\
return lt->tm_##name; \
}
gen_localtime(mday);
Tiskni
Sdílej: