Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.
Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Řešení dotazu:
#include <stdio.h>
#define PRE "v"
#define N "1"
#define N2 "2"
#define S PRE N"."N2
#define SS(a,b) PRE a"."b
int main(int argc, char **argv, char **env)
{
const char *word = S;
const char *word2 = SS(N, N2);
puts(word);
puts(word2);
return 0;
}
#define BASESTRING "CISLO: "
#define CISLO1 1
#define CISLO2 2
#include <stdio.h>
#define xstr(s) str(s)
#define str(s) #s
#define CISLO1 1
#define CISLO2 2
...
const char vystup[]=BASESTRING xstr(CISLO1) "." xstr(CISLO2);
Lebo
Stringification a String-Constants
char data[]="meno"; char *data="meno"; const char *data="meno";
riadok 1. - nemôžeš urobiť data=data2. Teda nemôžeš priradiť do premennej typu pole.
riadok 2. - môžeš urobiť data=data2 ak data2 je pointer. Ale napr. sizeof vracia inú hodnotu ako pri riadku 1, v jednom prípade je to veľkosť pointra (na 32 bitovom systéme typicky sizeof povie 4), v druhom prípade sa vráti veľkosť pamäti zabratej poľom - čo je v tomto prípade 5 (4 písmená a '\0')
riadok 3. - nemôžeš urobiť data[i]='x'. Teda: data[i] je "const char" a priradenie je v rozpore s tým "const".
Tipujem, že toto už je iný level debaty než Jirka potrebuje.
Tá otázka nedáva zmysel.
char *je iný dátový typ ako
char []tak sa proste chová inak.
Podobne kľúčové slovo const dáve kompilátoru pokyn, aby niečo robil/nerobil. Nie je to vynútené architektúrou procesora ani božím prikázaním ani ničím podobným. Skrátka jazyk C definuje, že nejaký zápis spôsobuje nejaké chovanie.
char *em jsou ve výsledné binárce uložené v segmentu .rodata a tudíž se nedají modifikovat?
Mezi
char *s = "Peppa";
const char *t = "Pig";
v principu není rozdíl, akorát v tom druhém případě kompilátor zabrání tomu, aby se někdo pokusil udělat t[0] = 'B'.
#include <stdio.h>
#define PREFIX "v"
#define MAJOR 1
#define MINOR 2
#define STR(a) #a
#define VERSION(a,b) PREFIX STR(a) "." STR(b)
int main(int argc, char **argv, char **env)
{
const char *version = VERSION(MAJOR, MINOR);
puts(version);
return 0;
}
Tiskni
Sdílej: