C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Label只能用作语句Error的一部分大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在浏览论坛,但我没有找到适用于我的情况的这个问题的答案.我正在尝试使用’sort'(uniX)进行系统调用,但是,我收到一条错误消息,“标签只能是声明的一部分而且声明不是声明.”这是导致错误代码.
int processid;  
switch(processid = fork()){                 //establishing switch statement for forking of processes.
case -1:
    perror("fork()");
    exit(EXIT_FAILURE);
    break;
case 0:
    char *const parmList[] = {"usr/bin/sort","output.txt","-o",NULL};  //execv call to sort file for names.
    break;
default:
    sleep(1);
    printf("\nChild process has finished.");
}

在系统调用中,我尝试按字母顺序对文件进行排序,以便名称简单地收集相似的术语.

我是如此傻眼,因为这个错误发生在char * const中,其中包含我的execv系统调用的命令.此EXACT开关语句适用于不同的程序文件.有人能发现我失踪的东西吗?
谢谢

解决方法

在C(与C相反)声明不是语句.标签可以仅在声明之前.您可以编写例如在标签后插入空语句
case 0:
    ;
    char *const parmList[] = {"usr/bin/sort",NULL};  //execv call to sort file for names.
    break;

或者您可以将代码括在大括号中

case 0:
    {
    char *const parmList[] = {"usr/bin/sort",NULL};  //execv call to sort file for names.
    break;
    }

虑到在第一种情况下变量的范围是switch语句,而在第二种情况下,变量的范围是标签下的内部代码块.该变量具有自动存储持续时间.因此退出相应的代码块后它将不会存在.

大佬总结

以上是大佬教程为你收集整理的Label只能用作语句Error的一部分全部内容,希望文章能够帮你解决Label只能用作语句Error的一部分所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。