标签: parentheses

括号中的类型定义

我在MSVC中编译了这些代码:

int a=sizeof(struct{char c;});
Run Code Online (Sandbox Code Playgroud)

int b=((struct{char c;} *)0,0);
Run Code Online (Sandbox Code Playgroud)

printf("%p",(struct{char c;} *)0);
Run Code Online (Sandbox Code Playgroud)

作为C代码,它们可以通过编译,但会出现警告(warning c4116: unnamed typeDefinition in Parentheses。如果给出名称,则为“ warning c4115: "Whatever" :named typeDefinition in Parentheses ");
作为 C++ 代码,它们在编译时会出现一堆错误。

我的问题是:
1.在C中,括号中的类型定义有效吗?为什么我会收到该警告?
2. 在C++中,括号中的类型定义有效吗?

编辑:
3.为什么?

c c++ definition parentheses

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

带/不带括号的 JavaScript 函数调用

代码_0:

foo不带括号调用)

function foo(){
    console.log('hello world');
}

setTimeout(foo, 2000);
Run Code Online (Sandbox Code Playgroud)

这是如何code_0执行的:

start -> wait for 2 seconds -> 'hello world' displayed -> end
Run Code Online (Sandbox Code Playgroud)

代码_1:

foo用括号调用)

function foo(){
    console.log('hello world');
}

setTimeout(foo(), 2000);
Run Code Online (Sandbox Code Playgroud)

这就是code_1执行的方式:

start -> 'hello world' displayed immediately -> wait for 2 seconds -> end
Run Code Online (Sandbox Code Playgroud)

当我用括号调用函数时,为什么程序的执行会如此不同?其根本机制是什么?

抱歉,如果这个问题太琐碎了。但我找不到任何针对初学者的 javascript 教程的解释。

javascript parameter-passing function-calls parentheses

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

为什么 pandas 的类别/垃圾箱用左括号写,但用右括号写?

我在 pandas 文档页面上发现了以下内容pd.cut()

离散成三个大小相等的箱。

>>> pd.cut(np.array([1, 7, 5, 4, 6, 3]), 3)
... 
[(0.994, 3.0], (5.0, 7.0], (3.0, 5.0], (3.0, 5.0], (5.0, 7.0], ...
Categories (3, interval[float64]): [(0.994, 3.0] < (3.0, 5.0] ...
Run Code Online (Sandbox Code Playgroud)

为什么返回的类别以括号开头(但以方括号结束]?这是否表示 Python 中的特殊对象?起初我以为这是一个拼写错误,但我的控制台给出了相同的结果。

python brackets parentheses categories pandas

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

C++函数参数作为参考

我有个问题.任何人都可以告诉我为什么有人会声明这样的参数r

什么是Record&r和Record(&r)之间的区别?

QDataStream& operator>>(QDataStream &s, Record(&r))
{
}
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

c++ qt coding-style reference parentheses

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

使用Parse :: RecDescent解析带有嵌套括号的字符串

我正在尝试使用Parse::RecDescentmake解析器来解析括号表达式和一元运算符?.

到目前为止,我创建解析器时失败了,因为规则expression是左递归的:

use strict;
use warnings;
use Parse::RecDescent;

my $test = <<END;
((foo)? bar)
END

my $grammar = q(
    parse: expression(s)
    expression: string | parend | expression(s)
    parend : "(" (string | expression) ")" /\??/
    string : /\w+/ /\??/

);
my $parser = Parse::RecDescent->new($grammar);
my $result = $parser->parse($test);
if($result){
    print $result;
}else{
    print STDERR "Invalid grammar\n";
}
Run Code Online (Sandbox Code Playgroud)

perl parsing parentheses parse-recdescent

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

用于检查parallel()s,{}和[] s的字符串的C++程序

所以这是我的问题:

我应该写一个c ++程序来检查字符串是否平衡.到目前为止,我有代码工作,以确保它具有相同数量的('s和')(与['s和{'s相同).问题在于它适用于几乎所有的东西,但它不适用于{'s,('s和[都混淆了]的字符串.

例如:"{{[()]}()}"恢复为平衡(真实).但是,"{([]})"会回来,但不应该.

逻辑和/或代码中有哪些想法可以检查它们何时出现故障?

谢谢你的帮助!

万一有帮助,我的代码如下:

bool ExpressionManager::isBalanced(string expression)
{
//remove whitespace
string edited;
for(int i = 0; i < expression.length(); i++)
{
    if(expression[i] == ' ')
    {
        continue;
    }
    else
    {
        edited += expression[i];
    }
}
expression = edited;

//set up brckets 
string brackets;

for(int i = 0; i < expression.length(); i++)
{
    if (expression.at(i)=='(')
    {
        brackets += expression.at(i);
    }
    if (expression.at(i)=='[')
    {
        brackets += expression.at(i);
    }
    if (expression.at(i)=='{')
    {
        brackets += expression.at(i);
    }
    if (expression.at(i)=='}')
    {
        brackets …
Run Code Online (Sandbox Code Playgroud)

c++ brackets curly-braces parentheses

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

为什么在没有空括号的情况下定义的Scala函数不像函数那样?

考虑以下2个对象

object TestObj1 {
  def testMethod = "Some text"
}

object TestObj2 {
  def testMethod() = "Some text"
}
Run Code Online (Sandbox Code Playgroud)

如果我直接调用这些方法,他们就会按照我的期望行事

scala> TestObj1.testMethod
res1: String = Some text

scala> TestObj2.testMethod
res2: String = Some text
Run Code Online (Sandbox Code Playgroud)

但现在如果我们定义以下功能

def functionTakingFunction(callback: () => String) {
  println("Call returns: " + callback())
} 
Run Code Online (Sandbox Code Playgroud)

并尝试调用它,不接受没有()定义的方法.

scala> functionTakingFunction(TestObj1.testMethod)
<console>:10: error: type mismatch;
 found   : String
 required: () => String
              functionTakingFunction(TestObj1.testMethod)
                                              ^

scala> functionTakingFunction(TestObj2.testMethod)
Call returns: Some text
Run Code Online (Sandbox Code Playgroud)

我还注意到你不能使用括号调用TestObj1.testMethod,因为它已经是一个String.但是什么导致了这种行为?

scala parentheses

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

检查括号是否平衡 - 没有堆栈

假设我有一个非常庞大的文件,我想检查括号是否平衡.我不能用堆栈,对吧?因为它会导致堆栈溢出.我可以用什么方法?

parentheses

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

单元素的parethesized表达式/元组与括号的常见用法

对不起,如果这是微不足道的 - 我对swift很新,实际上我只看了几分钟的语言指南+参考.

据我所知,括号表达式(2,3)用于构造元组,并且(2)是类型的单元素元组(Int).

但是,如果(2+4)在表达式中使用括号,会发生什么(2+4)*5?这仍然是一个类型的元组(Int)乘以Int

tuples parentheses swift

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

逗号和C中的括号和花括号之间有什么关系?

我有以下两行,找不到很好的解释

我确实读过逗号作为运算符和分隔符的双重性质,以及括号的优先级优先级和逗号作为序列点。

int a =(3,4) // here a is 4 because comma here is an operator first a=3 , then a = 4 
int a={3,4} // here is the problem , should not a=3 and then a =4 too because comma is a sequence point or it's undefined behavior or what ?
Run Code Online (Sandbox Code Playgroud)

我期望

a=4
a=4 , 
but the actual output is 
a=4 , a=3
Run Code Online (Sandbox Code Playgroud)

c comma curly-braces parentheses

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