voglio forzare le stringhe da assegnare in variabili locali dinamicamente a run-time tramite istruzioni di montaggio senza la stringa occupa di memoria in una sezione di dati (come ad esempio l'unica sezione dati lettura).C++ gcc stringa inlining
Quanto segue sembra funzionare perfettamente:
char foo[] = "bar";
Il codice assembly diventa:
movl $7496034, 40(%esp)
Così, foo
viene inizializzato con "bar"
tramite l'istruzione movl
in fase di esecuzione.
Come posso forzarlo a verificarsi su tutte le operazioni di stringa?
Ad esempio, se mi passa una stringa letterale in una funzione:
testfunc("bar");
La stringa "bar"
saranno destinati in una sezione in questo caso.
'char foo [] =" bar "; testfunc (foo); 'non funziona? –
Sono curioso di sapere come funziona. –
@Andrew: questo mi costringerà a dichiarare una variabile ogni volta che è ciò che sto cercando di evitare. – user3575889