标签: declaration

C程序中的EBNF声明语法

我对编程有点陌生(好吧,非常新),我遇到了扩展巴科斯诺尔范式(EBNF),并决定尝试弄清楚如何使用它。不幸的是,尽管网上有大量关于 EBNF 如何工作的解释,但关于如何实际实现它的却很少。所以我使用它用 C 语言编写了一个简单的小程序,只是为了看看会发生什么。这是我写的:

#include <stdio.h>
#include <stdlib.h>


mixture : [letter|digit] {letter | digit};
integer : [ "+"|"-"] digit {digit};
naturalNumber : digit {digit};
digit : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
letter : "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" |    "n" | "o" | "p" | …
Run Code Online (Sandbox Code Playgroud)

c syntax declaration ebnf

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

在 *ptr 初始化后声明 *ptr=x 有什么问题?

int x=10;
int *p;
p=&x;
int **pp=&p;
cout<<**pp<<"\n"<<*p<<"\n"<<pp<<"\n"<<&p<<"\n";
Run Code Online (Sandbox Code Playgroud)

在上述情况下一切顺利,但是当我改变声明指针 p 的方式时:

int x=10;
int *p;
*p=x;
int **pp=&p;
cout<<**pp<<"\n"<<*p<<"\n"<<pp<<"\n"<<&p<<"\n";
Run Code Online (Sandbox Code Playgroud)

它没有给出任何输出。这是为什么?

c++ pointers initialization reference declaration

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

声明指针的方式有什么区别?

这两种方式有什么变化呢?

int *ptrint* ptr

两者的工作方式相同,但是对于我的代码或性能,我的程序有差异吗?

#include <iostream>

using namespace std;

int main() {

    int a(5);
    int *ptr1 = &a;
    int* ptr2 = &a;

    cout << "a:    (0x" << hex << uppercase << (uintptr_t)&a << ") = " << dec << a << endl;
    cout << "ptr1: (0x" << hex << uppercase << (uintptr_t)ptr1 << ") = " << dec << *ptr1 << endl;
    cout << "ptr2: (0x" << hex << uppercase << (uintptr_t)ptr2 << ") = " << …
Run Code Online (Sandbox Code Playgroud)

c++ pointers declaration

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

Swift 声明中的“{ SomeClass().func() }()”语法意味着什么?

我在某个地方找到了这个并一直在我的代码中使用它。

我不确定为什么要加上大括号和尾随括号。它们有必要吗?他们在做什么?我不知道在 Swift 文档中哪里可以找到它。

var textField = { UITextField.textFieldWithInsets(insets: UIEdgeInsets(top:0, left:5, bottom:0, right:15)) }()
Run Code Online (Sandbox Code Playgroud)

initialization declaration object swift

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

GO声明不一致

我是 GO 的菜鸟,刚刚开始学习这门语言。为什么这样可以:

const name, age = "Kim", 22

但这不是

const name, age := "Kim", 22

constants declaration go

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

Java泛型:&lt;T&gt; T[] toArray(T[] a)中的第一个“T”是什么意思?

我正在使用 Eclipse,当我导航 List.class 的反汇编时,我看到了这个:

<T> T[] toArray(T[] a);
Run Code Online (Sandbox Code Playgroud)
  1. 这里的领先<T>实际上意味着什么?它是返回类型的一部分吗?我猜返回值是T[].

  2. 在什么情况下函数需要声明 like<T> T[]作为函数签名?

java generics types declaration function

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

内联声明变量中的类型确定?

当我们通常声明一个变量时,我们会指定它的类型。

如果我们不指定内联声明变量的类型,会发生什么情况?是根据收到的值来分配的吗?

例如:

Ex.1 这里我们通过传入的值来获取字符串类型?

DATA(lv_name) = 'Testing Value'.
Run Code Online (Sandbox Code Playgroud)

Ex.2 这里我们得到lt_maraTYPE TABLE OF mara?

SELECT * FROM mara 
         INTO TABLE @DATA(lt_mara) UP TO 10 ROWS.
Run Code Online (Sandbox Code Playgroud)

我对这个问题的理解正确吗?

abap variable-types inline declaration

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

如何声明计算器的类?

我正在尝试在 Haskell 中使用类声明构建自己的计算器。

首先,我试图实现添加,但这里出现错误:

无法将预期类型“Exp -> Double”与实际类型“Exp”匹配

data Exp = Number Double | Add Exp Exp 


class Calc a where
 calculate :: a -> a -> Double

instance Calc Exp where
 calculate (Add a b) = a + b

Run Code Online (Sandbox Code Playgroud)

我必须改变什么?

haskell class declaration

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

为什么 Ada 语言使用分号“;”来分隔子程序声明中的参数?

各位编码员..

我只是一个新学习者,尝试在特定的设计环境中练习一些编程范例。最近我在Ada语言过程编程中学到了很多新的小东西,并且有很好的学习经验。但是,我自己找不到答案,为什么 Ada;在子程序声明中使用分号来分隔参数。

-- subprogram declaration - - - - - - - - -

procedure Initialize_Some_Things
   ( Result : out Integer
   ; Asset : in Integer
   ; Option: in Integer ) is
begin
   null;
end Initialize_Some_Things;

-- invoking subprogram - - - - - - - - -

Instance : Integer := 0;
Initialize_Some_Things (Instance, 9, 5);
Run Code Online (Sandbox Code Playgroud)

对于来自任何其他编程语言的人来说,在子程序声明中使用分号来分隔参数显然很奇怪。更奇怪的是,当子程序的调用需要使用逗号,而不是;声明中的分号时。我搜索了相关问题一段时间,但在谷歌上找不到任何结果。无论如何,是否可以提交请求以对语言的标准规范进行这种微妙的更改?

我在 Google 上没有找到相关问题。我希望我能在这里找到。

procedural procedural-programming procedure declaration ada

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

Delphi 程序:第一条指令无法编译

我正在编写一个 Delphi 应用程序,其中有一个清除表单并将其重置为默认状态的过程。

procedure ResetForm ();
begin
   edtG1.Text := ''; // Error occurs on this line, no matter what the instruction is.
   edtG1.Enabled := True;
   btnG1Check.Enabled := True;
   .
   .
   .
   .
end;
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一切 - 无论如何,程序中的第一行代码都无法编译。我也看不出程序声明有任何问题。

有人可以帮忙吗?我的谢谢。

我试图清除表单中的所有字段,启用已禁用的内容等。将其重置为默认状态,因为它在程序开始时启动。我在第一行尝试了不同的代码指令(是的,edtG1存在),其他控件执行完全相同的操作以及所有其他指令。我也尝试过重命名该过程,但无济于事。

delphi procedure declaration

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