小编use*_*285的帖子

C文件中使用的goto标签相同但功能不同

有人可以告诉我是否可以在同一个C文件中的不同函数中使用相同的goto标签?

解释我面临的问题:

function1()
{
    ...

    goto label

    ...

label:
    ...
}

function2()
{
    ...

   goto label;

    ...

label:
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在发生的事情是标签之后的代码被用于清理malloc'ed'数据.整个事情在function2中崩溃了.我打印出了mem.免费和相同的位置被多次释放.这是因为所有的冒险?这是goto语句的有效使用吗?

c goto

18
推荐指数
2
解决办法
5595
查看次数

upvar的目的是什么?

在我目前正在处理的TCL代码中,每个过程中的参数都被upvar赋予局部变量,然后使用.像这样的东西:

proc configure_XXXX { params_name_abc params_name_xyz} {
    upvar $params_name_abc abc
    upvar $params_name_xyz xyz
}
Run Code Online (Sandbox Code Playgroud)

从这里开始,abcxyz将用于做任何事情.我阅读了upvar TCL wiki,但无法理解其优点.我的意思是为什么我们只能使用已经接收的变量作为过程中的参数.有人可以详细说明吗?

tcl upvar

3
推荐指数
1
解决办法
603
查看次数

C 中整型变量可以同时具有 const 和 volatile 限定符吗?

我想知道这是否可行以及可以在哪里应用类似的东西。我在某个地方被问到这个问题,我的想法是,对于你知道其值不会改变或者更确切地说你不想改变的东西,你会有一个 const 。然而,根据定义,易失性变量可以随时更改,甚至可以通过当前范围之外的代码进行更改。所以在我看来,这两个限定词是相互矛盾的。

c constants volatile

1
推荐指数
1
解决办法
5056
查看次数

TCL 中列表的行为

我在我的 TCL 代码中处理一个列表(只有一个元素),当我用 puts 打印出来时,我看到文本有时用大括号括起来。例如:{abc} 有时不是。这会导致问题,因为我正在对这个特定文本执行 regsub 并且大括号导致我的代码失败。我还观察到,当文本中有特殊符号时,列表会用大括号括起来。任何人都可以解释为什么列表括在大括号中。

list tcl

0
推荐指数
1
解决办法
398
查看次数

标签 统计

c ×2

tcl ×2

constants ×1

goto ×1

list ×1

upvar ×1

volatile ×1