Какой правильный синтаксис для этого кода: это:
printf("printf(\"\%d\",%s);", some_var);
или
printf("printf(\"%%d\",%s);", some_var);
Или что-то еще?
Второй. %d определяется printf, а не языком C, поэтому вам нужно экранировать его с помощью printf %%, а не экранирования символов.
%d
%%
Более сложный пример с escape-последовательностью символов:
printf("printf(\"%%d\\n\",%s);\n", some_var);
Второй. Чтобы напечатать литерал %, вам нужно экранировать его, добавив еще один %.
%