이것은 원본입니다.argc와 argv를 사용하여 sprintf의 모든 인수를 ivlpp_main에 전달하려고합니다. 코드가 같은 효과를 가졌습니까?
정적 무효 build_preprocess_command (INT의 e_flag는)
{
ivlpp_main(argc, argv);
snprintf(tmp, sizeof tmp, "%s%civlpp %s%s -F\"%s\" -f\"%s\" -p\"%s\" ",
pbase, sep, verbose_flag?" -v":"",
e_flag?"":" -L", defines_path, source_path,
compiled_defines_path);
}
이 내 코드
정적 무효 build_preprocess_command_and_run (INT의 e_flag) {
문자입니다 ** myargv ;
int argc, arg;
myargc = 7;
myargv = new char (myargc);
arg = 0;
myargv [arg] = 새로운 char (strlen (pbase) + strlen ("ivlpp") + strlen (sep) + 2);
sprintf(argv[arg], strlen(pbase) + 2,"s%s%ccivlpp", pbase, sep);
myargv [ARG ++ = 새 문자 (나 strlen (defines_path) + strlen 함수 ("- F \"% S \ ''));
myargv [arg ++] = 새 char (strlen (definitions_path) + strlen ("-f \"% s \ "")));
myargv [arg ++] = 새 char (strlen (definitions_path) + strlen ("-f \"% s \ "")));
myargv [arg ++] = new char (strlen ("- p \"% s \ "")));
myargv [arg ++] = new char (strlen ("- v"));
myargv [arg ++] = new char (strlen ("- L"));
경우 (verbose_flag는) {
//argv[arg++] = "-v";
sprintf("-v");
}
경우 (! e_flag) {
//argv[arg++] = "-L";
sprintf("-L");
}
현재 snprintf ("-F \"% s \ "에 ", definitions_path);
snprintf ("-f \"% s \ "", source_path);
snprintf ("-f \"% s \ "", compiled_defines_path);
ivlpp_main (argc, argv);
}
이것은 Qt와는 아무런 관련이 없습니다. –