我是Perl的初学者,当我执行代码时,我收到此消息:
Use of uninitialized value $triggerCheck in numeric gt (>) at
./advanced-daemon.pl line 101.
Run Code Online (Sandbox Code Playgroud)
这是我执行代码时遇到的唯一错误/警告.代码本身没有任何问题,但我想知道该变量中的问题是什么?
要重现此问题,您可以使用此代码:
while(1==1)
{
my $triggerCheck = "10";
if($triggerCheck < 10)
{
print "This var is < 10";
}
$triggerCheck = 9;
sleep 1;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我解决了我的问题.抱歉打扰你们:)
当我尝试使用这种通用格式的代码时,我收到编译器的错误:
在classname.hpp中
#include "otherclass.hpp"
class classname {
public:
typedef struct {
otherclass membername(sometype);
} structname;
void functionname(structname& exampleData);
}
Run Code Online (Sandbox Code Playgroud)
在main.cpp中,我定义了一个变量exampleData:
classname::structname exampleData;
Run Code Online (Sandbox Code Playgroud)
在classname.cpp中,我有一个使用exampleData的函数,并尝试初始化struct的成员,membername:
void classname::functionname(structname& exampleData){
sometype a;
exampleData.membername(a);
}
Run Code Online (Sandbox Code Playgroud)
我从编译器收到错误说明:
未定义的符号:
classname::structname::membername(sometype)"classname::functionname(classname::structname&)在classname.o中引用.ld:符号未找到
我认为我的错误在于线
otherclass membername(sometype)
Run Code Online (Sandbox Code Playgroud)
我还以为它可能是:
otherclass membername(sometype& a)
Run Code Online (Sandbox Code Playgroud)
但我收到了同样的错误.
我想知道这是否合法,在构造函数不是()的类中的结构中有一个成员.在main.cpp中,当我声明exampleData时,membername尚未初始化.这是合法的还是我在错误的地方打猎?
假设我像这样初始化一个数组:
char a[]="test";
Run Code Online (Sandbox Code Playgroud)
这是为了什么目的?我们知道内容可能会立即更改,因为它没有分配,因此有人会为此初始化数组?
我只是从c转到C++,我正在尝试构建一个计算器.Int'结果'不会通过数学运算初始化.逻辑是,根据操作'',将有一个不同的值分配给'结果'.这似乎不起作用.
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main ()
{
int n1, n2;
char s,r;
int result = 0;
cout<< "Enter a calculation? (y/n)"<<endl;
cin>>r;
while(r=='y')
{
cout <<"Enter the first number"<<endl;
cin>>n1;
cout<<"Enter the operator"<<endl;
cin>>s;
cout<<"Enter the second number"<<endl;
cin>>n2;
if ('s' == '*')
{
result = n1*n2;
}
if ('s' =='+')
{
result = n1+n2;
}
if ('s' =='-')
{
result = n1-n2;
}
if ('s' =='/')
{
result = n1/n2;
}
cout << result<<endl;
cout<< …Run Code Online (Sandbox Code Playgroud) ; We now have about 30,000 cycles to burn before the PPU stabilizes.
; One thing we can do with this time is put RAM in a known state.
; Here we fill it with $00, which matches what (say) a C compiler
; expects for BSS. Conveniently, X is still 0.
txa
@clrmem:
sta $000,x
sta $100,x
sta $300,x
sta $400,x
sta $500,x
sta $600,x
sta $700,x ; Remove this if you're storing reset-persistent data
; We skipped $200,x …Run Code Online (Sandbox Code Playgroud) 我想做的事:
int[] array;
...
array = {2, 7, 9};
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
当有人在同一时间声明和初始化时,它又称为什么?我只是把它想象为硬代码初始化
我正在开发一个程序,我需要一个只有三个状态的变量,未触及(未初始化),true和false,因此很明显布尔值将是最佳选择.但在确定bool是否未受影响时,我遇到了一些问题.我很快发现布尔默认为204或205,但你怎么能说出来?我已经对它进行了一些测试,我注意到在我的一个程序中,它一直是204,但在另一个程序中它是205.
我不确定是什么决定了这个值,以及它的值是否因程序或基于设备和所使用的操作系统而异,但是无论操作系统或设备如何,该值在整个程序中是否一致?就像在,它会起作用吗?
//for some reason the default is only 204 or 205 when in an array
bool asdf[1];
const bool UNDEFINED_BOOL = asdf[0];
Run Code Online (Sandbox Code Playgroud)
而不是使用整个UNDEFINED_BOOL程序的值作为比较,以查看bool(在数组中)是否未定义?它似乎在我的设备上工作,但它适用于所有设备和所有操作系统?这是整个C++中一致的东西吗?还有另一种方法可以找出未定义的bool的值是什么,或者是没有示例你无法确定的东西?
编辑:当我的程序设置为true或false时,永远不会有理由将其设置为未初始化,所以这不是我要担心的事情
我有这个代码来计算一个值的指数幂,这两个都是由用户输入的,例如,用户输入2 ^ 3 = 8,它假设这样工作但是有些错误,最终结果是608,当我在计数器的pwra函数中调试,甚至在计数器启动之前设置结果值,从那里我不知道,因为我没有设置它所以最终结果是608.我觉得它是一个缓冲区问题,但我试过fflush无论是进出,它都不起作用.因此,当我将此代码复制到一个新窗口时,它会工作一段时间,然后再次相同,之前它显示624作为最终结果.
#include <stdio.h>
int pwra (int, int);
int main()
{
int number, power, xx;
printf("Enter Number: ");
scanf("%i", &number);
printf("Enter Number: ");
scanf("%i", &power);
xx=pwra (number,power);
printf("Result: %i", xx);
return 0;
}
int pwra (int num, int pwr)
{
int count, result;
for(count=1;count<=pwr;count++)
{
result = result*num;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
另外一件事,我如何计算a的指数值float,因为当我改变所有int到float最终结果时总是0.00000甚至是%lf.
在初始化部分的for循环中,您可以根据需要声明和初始化许多变量,但当然它们必须是相同的类型.在条件部分,您可以应用任何表达语句,如AND(&&),OR(||),>,< ,==等但是(,)不是表达式.它如何在这里工作只是a = 1,2,3,4,5,6和b = 1,2,3,4,5,6,7,8 ,9,10和a <6,b <9返回a = 1,2,3,4,5,6,7,8,9 = b
for(int a=1,b=1,c=2,d=5;a<4,b<10;a++,b++)//initialize variables and using , between expression
{
cout<<a<<" "<<b<<endl;
}
Run Code Online (Sandbox Code Playgroud) 我试图了解编译器何时应该初始化数组以及何时应该默认初始化数组.我正在尝试两个选项:一个原始数组,另一个在结构中聚合的数组:
const int N = 1000;
struct A
{
uint32_t arr[N];
A() = default;
};
void print(uint32_t* arr, const std::string& message)
{
std::cout << message << ": " <<
(std::count(arr, arr + N, 0) == N ? "all zeros" : "garbage") << std::endl;
}
int main()
{
uint32_t arrDefault[N];
print(arrDefault, "Automatic array, default initialization");
uint32_t arrValue[N] = {};
print(arrValue, "Automatic array, value initialization");
uint32_t* parrDefault = new uint32_t[N];
print(parrDefault, " Dynamic array, default initialization");
uint32_t* parrValue = new uint32_t[N]();
print(parrValue, …Run Code Online (Sandbox Code Playgroud)