c - 如何在程序中将变量传递给稍后/将 double 输入对话框

标签 c variables double

我试图在我的程序开始时创建一个对话框,允许用户输入一个数字,然后在程序稍后的另一个函数(实际上是另一个 C 文件)中使用该数字。

void function()
{
double variable;
char buf[256] = "400";
sprintf( buf, "%d", variable);
#ifdef WIN32
edit_dialog(NULL,"Enter variable", "Please enter the variable:", buf,260);
#endif
variable = atof(buf);
}

我想稍后在程序中将“变量”传递给另一个函数。问题是,直到很久以后我才需要这个变量。在它到达程序的正确部分之前,我不想在每个函数之间传递它。我该怎么做?

此外,当我启动它时,我得到了我预期的对话框,但框中的数字不是我预期的 400。相反,它是 2089881670(!) 我假设我处理内存不正确但不明白为什么。

最佳答案

对于 2089881670 问题,您应该像这样初始化您的变量:

双变量=0;

对于在某处创建并在很远的地方使用的变量,您可以使用全局/静态变量(原文如此),如下所示:

static double variable;

void function()
{
char buf[256] = "400";
   sprintf( buf, "%d", variable);
   #ifdef WIN32
   edit_dialog(NULL,"Enter variable", "Please enter the variable:", buf,260);
   #endif
   variable = atof(buf);
}

关于c - 如何在程序中将变量传递给稍后/将 double 输入对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031379/

相关文章:

java - 如何编写测试用例来比较无穷大值?

c - 覆盖局部变量的缓冲区溢出

variables - 输入名称选择器中的 jquery 变量

C++类的指针变量

Java 使用 double 或 float 时计算错误

c# - Point 双坐标的最佳实践

c++ - 如果我在使用 PTHREAD_PROCESS_SHARED 时不调用 pthread_mutex_destroy 会发生什么

创建 scanf 以格式化文本文件

c - 从 c 中的 char* float

java - 无法识别变量更改