PoisonousPython Posted August 22, 2017 Report Posted August 22, 2017 (edited) Inainte sa postez asta pe Stack Overflow, m-am gandit sa o postez aici. De ce functioneaza codul asta? #include <stdio.h> int main(){ printf("blabla" "321" "wow"); } E ca si cum string-urile s-ar concatena automat... Probabil e ceva de la compilator desi nu cred. De mentionat ca folosesc GCC 7.1.1. EDIT: Mda. Am gasit raspunsul. Pentru toti cei care sunt curiosi: https://stackoverflow.com/questions/14035769/concatenating-strings-in-a-printf-statement Edited August 22, 2017 by PoisonousPython 2 Quote
yoyois Posted August 22, 2017 Report Posted August 22, 2017 In plus: Stringurile "abc" "test" "123" sunt statice, declarate la compilare. Stringurile de acest tip (statice, scrise in cod) sunt destul diferite fata de pointer to char. Compilatoarele trateaza stringurile hard coded intr-un mod special. Auto-concatenare(lipite impreuna) Reducere(daca declari "test" de 2 ori in cod compilatorul va aloca spatiu pt un singur string si va creea 2 referinte) reducere logica, read only memory etc. 1 Quote