我正在学习 C 并试图帮助调试朋友的代码。他在全局范围内定义他的函数参数,然后像这样将它们传递给函数 def :
#include <stdio.h>
double x;
double myfunc(x){
return x;
}
void main(){
}
Run Code Online (Sandbox Code Playgroud)
我明白这是错误的,但不是为什么出现以下错误:
main.c:14:8: warning: type of ‘x’ defaults to ‘int’ [-Wimplicit-int]
Run Code Online (Sandbox Code Playgroud)
有人能帮我理解计算机是如何解释这段代码的吗?
我试图声明一个整数变量m和一个指向整数数据类型n的指针.
int m,*n;
*n=2;
printf("%d",*n);
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常.但
int *n,m;
*n=2;
printf("%d",*n);
Run Code Online (Sandbox Code Playgroud)
给出了分段错误.
请解释原因?
好吧,我正在玩视觉基础,似乎有一段时间开始使用xD.无论如何不确定为什么我收到以下错误:
UACLevel_Level没有宣布.由于其保护级别,它可能无法访问.
我尝试点击小帮助图标的东西,它什么也没给我.
Dim ConsentPromptBehaviorAdmin = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", Nothing)
Dim EnableLUA = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", Nothing)
Dim PromptOnSecureDesktop = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", Nothing)
Dim UACLevel_Value = ConsentPromptBehaviorAdmin + EnableLUA + PromptOnSecureDesktop
If UACLevel_Value = 0 Then
Dim UACLevel_Level = "Never notify me."
ElseIf UACLevel_Value = 6 Then
Dim UACLevel_Level = "Notify me only when programs try to make changes to my computer(do not dim desktop)."
ElseIf UACLevel_Value = 7 Then
Dim UACLevel_Level = "Default - Notify me only when programs try …Run Code Online (Sandbox Code Playgroud) 假设我们有两个不同的struct主要是常见字段,但有一个或两个不同的字段或更少的字段.例如:
typedef struct HobbyNodetag {
char *name; // hobby name
struct HobbyNodetag* link; // link to next HobbyNode
int count; // number of times this hobby was mentioned by user
// more fields...
// but identical type/variable name with MyHobbyList
} HobbyNode; // database of entire hobby node; singly linked list
typedef struct MyHobbyTag{
char *name; // hobby name
struct MyHobbyTag* link; // linked to next MyHobbyNode
// more fields...
// but identical type/variable name with EntireHobbyList
} …Run Code Online (Sandbox Code Playgroud) 我从一个网站上读到C99解除了限制,即C中的变量必须在块的顶部声明.我在下面的程序中测试过,确实如此,因为我没有错误.但是在同一个程序中如果我在for循环的第一个语句中声明一个变量,我得到错误:
'for' loop initial declarations are only allowed in C99 mode|
这里有两件事.确实允许在程序中间声明变量,正如我所做的那样i,为什么我不允许在for循环语句中执行此操作?第二,如果我的编译器(Codeblocks/gcc)已经不在C99模式,为什么我在中间而不是顶部声明变量时没有出错?
#include <stdio.h>
int main (void)
{
//Proof that initialization in middle works (for i)
printf("Enter\n");
char string[20];
scanf("%s", string);
int i=20;
printf("%s,%i", string, i);
//Proved that it works
for(int j=0; j<10; j++) //THIS IS NOT ALLOWED
printf("%d\n", j);
}
Run Code Online (Sandbox Code Playgroud) 我之前在Google上搜索了一些与Python相关的问题,并偶然发现了这个页面.作者做了类似以下的事情:
class TestClass(object):
first = str()
def __init__(self):
self.first = "Hello"
Run Code Online (Sandbox Code Playgroud)
那个"声明"这个变量first有什么意义呢?我以前从未见过这样做过,而且我不能为我的生活想到这样一种情况,即在为变量赋值之前创建一个变量是有益的.
上面的例子可能看起来像这样:
class TestClass(object):
def __init__(self, first="Hello"):
self.first = first
Run Code Online (Sandbox Code Playgroud)
......或者我错过了什么?
我正在尝试将两个字符串放在一起,但是当我运行此代码时,我不断收到错误.我确信这是基本的东西,但我一直在玩这个30分钟而且无法弄清楚出了什么问题
filename= 'data.txt'
1output = '1min' + filename
Run Code Online (Sandbox Code Playgroud) 众所周知,程序员可以使用val或在Scala中声明一个新变量var,如下所示:
val x = 10 //x is now defined and an Integer.
Run Code Online (Sandbox Code Playgroud)
函数参数还引入了一个新变量:
def fun(y: String) {
//y of type String is now available here
}
Run Code Online (Sandbox Code Playgroud)
这些是直截了当的例子.但是,有更多方法可以在给定的上下文中声明变量.
例如,match表达式也可以引入新变量:
val z = 10
z match {
case w: Int => w //w is a valid variable of type Int in this scope
}
Run Code Online (Sandbox Code Playgroud)
什么是在Scala中将变量引入特定范围的其他命令?
有兴趣的背景:
我在一个宏中使用它,它在抽象语法树中找到变量定义(ValDefs).match表达式或函数定义生成与普通ValDefs不同的语法树,我必须要处理它.因为我希望我的宏是健壮的,所以我想针对所有可能形式的变量声明来测试它.
评论说明:
方法定义def不受关注.此外,我只对源代码中可见的变量感兴趣,并且可以通过某些术语引用.
您不能声明void变量:
void fn() {
void a; // ill-formed
}
Run Code Online (Sandbox Code Playgroud)
但这编译为:
void fn() {
void(); // a void object?
}
Run Code Online (Sandbox Code Playgroud)
什么void()意思 有什么用?为什么void a;格式不正确,但void()可以?
void fn() {
void a = void(); // ill-formed
}
Run Code Online (Sandbox Code Playgroud) [编辑:下面讨论的声明在C++和现代C中无效; 他们依赖于C的"隐含int"规则,后来被删除了.Herb Sutter讨论了读者问答的变化.感谢评论者和user2079303指出这一点.]
我想知道C++中const变量类型的推断.
我们的旧编译器编译声明const n = 1;.我会假设n有这种类型const int.我认为这int不是从初始化表达式(1)的类型推断出来的,而是一个简单的语法规则.
那么n的类型是const n = 1u;什么?我认为它也是int,但是在C++ 17标准草案中找不到规则(这让我想知道它是否实际上是非法的但是被宽松的编译器所容忍).同样令人感兴趣的是C是否存在差异,因此两个标签都存在差异.