我是Python的新手(和整个编程).我很确定答案很明显,但我真的不知道该怎么做.
def do_play(value, slot, board):
temp=board
(i,j) = slot
temp[i][j] = value
return temp
Run Code Online (Sandbox Code Playgroud)
board是列表.value是一个整数.slot是和整数元组.
我想在这里做的是
当我运行它是shell时,原始列表(板)和新列表(temp)都会发生变化.=
任何帮助,将不胜感激.
我想以"循环"方式使用函数,如以下示例所示:
fun cll1 (s)= cll2(s);
fun cll2 (s)= cll3(s);
fun cll3 (s)= cll(s);
Run Code Online (Sandbox Code Playgroud)
写这个会在SML中产生错误,构造函数cll2是未绑定的.有人可以帮我写这些内容吗?它可能在C; 我想用SML编写它.
6.7.6声明者说
每个声明符声明一个标识符,并声明当与表达式中出现的声明符形式相同的操作数出现在表达式中时,它指定一个函数或对象,其范围,存储持续时间和声明说明符指示的类型.
并且还说明了参数的语法:
parameter-declaration:
declaration-specifiers declarator
declaration-specifiers abstract-declarator(opt)
Run Code Online (Sandbox Code Playgroud)
对于给定的函数原型
int f( int a[], int n);
Run Code Online (Sandbox Code Playgroud)
int a[]使用声明a[]符声明一个参数,声明一个标识符a.
如果是的话
int f( int [], int n);
Run Code Online (Sandbox Code Playgroud)
int []declares参数是一个int数组,没有标识符.
是否[]也说明符?(我认为不是因为它没有声明标识符,但参数的语法表明它是!)
以下代码可以在vc ++ 19.00.23506(标志:)/Wall /WX /Za和vc ++ 19.10.25109.0(标志:/Wall /WX /Za /permissive-,可以在http://webcompiler.cloudapp.net上进行检查)下正常编译,但不能与clang 3.8.0一起编译。和g ++ 6.3.0(标志:)-std=c++11 -Wall -Wextra -Werror -pedantic-errors。这是vc ++中的错误吗?标准是否禁止这种构造?
struct
{
}
foo()
{
return {};
}
int main()
{
}
Run Code Online (Sandbox Code Playgroud) 据我所知,register说明符提示编译器将变量存储在寄存器中.这一切都很好,直到我XKBlib.h从Xorg-7.7中看到以下声明:
extern int XkbTranslateKeySym(
Display * /* dpy */,
register KeySym * /* sym_return */,
unsigned int /* modifiers */,
char * /* buffer */,
int /* nbytes */,
int * /* extra_rtrn */
);
Run Code Online (Sandbox Code Playgroud)
注意如何sym_return作为指向寄存器变量的指针传递.是什么让我想知道的是
点1似乎在某种程度上是无效的,因为我似乎能够将指针传递给非register变量,即使-pedantic-errors是GCC的标志.
那么,与带有省略register关键字的声明相比,这个声明有什么变化呢?它会改变召唤惯例还是什么?
c function calling-convention function-declaration register-keyword
我希望向那些尝试过C++ 20模块的人提出一个小问题
根据TS,这个代码应该在C++ 20中编译吗?
void f1() { f2(); }
void f2() { ... }
Run Code Online (Sandbox Code Playgroud)
例如,在C++ 11中它不会编译,因为f1()不"知道"f2(),必须在使用前声明f2().
但也许在C++ 20中,这个要求将在模块中消除?
如果没有编译第一个代码片段,那么这个代码片段是否会编译
void f1() { f2(); }
export void f2() { ... }
Run Code Online (Sandbox Code Playgroud)
因为从BMI可以看到f2()?
考虑下面的函数定义:
auto& Fnc1() { return someNonLocalVariable; }
Run Code Online (Sandbox Code Playgroud)
在这种情况下, - >未明确指定返回类型.但是有&after auto关键字.这是否保证返回引用而不是变量的副本?这是支持的语言功能(返回参考)吗?使用VS 2017,它可以按照我的预期工作:返回参考.但我找不到任何在线资源来验证.
我想创建一个存储任何整数 n 的乘法值的数组。之后,我想将该数组传递给另一个函数并打印出该数组。但是,我收到以下错误:
我的代码:
这是我的 .c 文件:
#include "multiplication.h"
#include <stdio.h>
int main(){
int num;
int arr=multiplication(4);
printArray(arr);
}
int mulitpication(int num){
/* initialize array and build*/
int arr[num][num];
for(int i=0; i<num;i++){
printf("row number: %d ",i);
for(int j=0;j<num;j++){
printf("column number: %d", j);
arr[i][j]= (i+1)*(j+1);
}
}
return arr;
}
void printArray(int arr[][]){
int i;
for(i=0;i<sizeof(arr);i++){
for(int j=0;j<sizeof(arr);j++){
printf("%d ",arr[i][j]);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的头文件:
void multiplication(int num);
void print(int arr[][]);
Run Code Online (Sandbox Code Playgroud)
错误:
multiplication.h:4:19: error: array has incomplete element type 'int []' …Run Code Online (Sandbox Code Playgroud) 我试图理解用 C 编写的固件,它驱动超宽带连接的芯片。
固件大量使用typedef和指针。我已经了解固件背后的大部分想法,但有一个typedef void功能我无法理解。
基本上,固件创建了一个结构来保存设备数据
typedef struct
{
//some data
dwt_cb_t cbTxDone; // Callback for TX confirmation event
//some other data
} dwt_local_data_t ;
Run Code Online (Sandbox Code Playgroud)
我知道该结构名为dwt_local_data_t并包含一些变量,包括这种奇怪的dwt_cb_t类型。
在 .h 文件中dwt_cb_t被命名为
// Call-back type for all events
typedef void (*dwt_cb_t)(const dwt_cb_data_t *);
Run Code Online (Sandbox Code Playgroud)
其中dwt_cb_data_t是另一种形式的结构
typedef struct
{
uint32 status; //initial value of register as ISR is entered
uint16 datalength; //length of frame
uint8 fctrl[2]; //frame control bytes
uint8 rx_flags; //RX frame …Run Code Online (Sandbox Code Playgroud) 根据我检查的文档,time_t time(time_t *seconds)在<time.h>头文件下声明。然而,当我运行这段代码时:
#include<stdio.h>
#include<stdlib.h>
int main()
{
srand(time(NULL));
printf("%d",rand());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
不包括<time.h>,它工作正常,或者至少工作。怎么会这样?
c header-files forward-declaration function-declaration c-header
c ×5
c++ ×4
function ×2
arrays ×1
auto ×1
c++14 ×1
c++20 ×1
c-header ×1
header-files ×1
module ×1
pointers ×1
python ×1
return-type ×1
return-value ×1
sml ×1
struct ×1
typedef ×1
visual-c++ ×1