在下面的代码片段中,我可以将 char * 替换为 const char * 并删除 strdup() 函数调用并直接获取 getopt() 设置的 optarg 值吗?建议我使用 const char * 来跳过 strdup 函数的使用。提前感谢帮助。
/* Code Snippet */
char *dir = NULL;
char *bld = NULL;
int chr;
while ( ( chr = getopt( argc, argv, "d:a:b:f:" ) ) != -1 ) {
switch ( chr ) {
case 'd': //Directory parameter
dir = strdup( optarg );
if (dir == NULL) { /*Error*/ }
case 'b': //Build parameter
bld = strdup( optarg );
if (bld == NULL) { /*Error*/ }
...other code...
}
}
我真的不明白这样做的必要性。
编辑:感谢您的回答。这真的很有帮助。我将代码修改为 const char * 并跳过了 strdup 调用。
谢谢,丽菊