Chcę zmusić ciągi mają zostać przydzielone do lokalnych zmiennych dynamicznie w czasie wykonywania przez instrukcją montażu bez ciąg zajmując pamięci w sekcji danych (takich jak tylko do odczytu sekcji danych).C++ gcc ciąg inline
następuje wydaje się doskonale działa:
char foo[] = "bar";
Kod montaż staje:
movl $7496034, 40(%esp)
Zatem foo
inicjowany jest "bar"
pośrednictwem instrukcji w czasie wykonywania movl
.
Jak mogę wymusić to na wszystkich operacjach ciągami?
Na przykład, jeśli mijam ciąg dosłownego do funkcji:
testfunc("bar");
Ciąg "bar"
zostaną przydzielone w sekcji w tym przypadku.
'char foo [] =" bar "; testfunc (foo); 'nie działa? –
Jestem ciekawy, jakie są tego powody. –
@Andrew: to zmusi mnie do zadeklarowania zmiennej za każdym razem, co staram się uniknąć. – user3575889