- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前遇到一个问题,在你看它之前,请尝试认为我只是一个尝试使用带有函数的指针的初学者。
我解释一下自己:我需要有一个菜单( Function )可以调用任何其他函数,但我的问题是我从我的“main”调用我的函数,所以我尝试在我的函数中使用指针。我刚刚学习如何使用指针,所以这是我现在想到的第一件事。
也许这是错误的方法,我仍在互联网上搜索如何做或正确做。
现在我收到此错误消息:
lvalue required as unary ‘&’ operand
这是我更正后的代码:(为了最大程度的可读性而进行了简化)
#include <stdio.h>
#include <stdlib.h>
void Menu(char *PointeurNameHuman, int *PointeurChoix, int *PointeurChoix1, int *PointeurChoix2, int *PointeurChoix3, void *PointeurWelcome())
{
printf("\n\nEnter your choice: \n ");
scanf("%d", PointeurChoix);
while ((*PointeurChoix != 1) || (*PointeurChoix != 2) || (*PointeurChoix != 3))
{
if (*PointeurChoix == *PointeurChoix1)
{
printf("\n! Play! \n ");
PointeurWelcome(PointeurNameHuman);
return 0;
}
else if (*PointeurChoix == *PointeurChoix2)
{
return 0;
}
else if (*PointeurChoix == *PointeurChoix3)
{
return 0;
}
}
}
void Welcome(char *PointeurNameHuman)
{
printf("\n\nWelcome %s \nPlease enter your name: ", PointeurNameHuman);
}
int main(int argc, char *argv[])
{
char NameHuman[] = "HUMAN";
int Choix, Choix1 = 1, Choix2 = 2, Choix3 = 3;
char *PointeurNameHuman = &NameHuman;
int *PointeurChoix = &Choix;
int *PointeurChoix1 = &Choix1;
int *PointeurChoix2 = &Choix2;
int *PointeurChoix3 = &Choix3;
void Welcome(PointeurNameHuman);
void (*PointeurWelcome)() = &Welcome; // OLD Error
Menu(PointeurNameHuman,PointeurChoix,PointeurChoix1,PointeurChoix2,PointeurChoix3,PointeurWelcome);
}
也欢迎所有关于如何简化我的代码的评论!预先感谢您的所有回答,祝您度过愉快的一天/一夜。
编辑:感谢“b4hand”的快速回答,你为我指明了解决问题的正确方向。
最佳答案
这个声明没有意义:
void Welcome(char *PointeurNameHuman[50])
您的意思可能是以下内容吗?
void Welcome(char *PointeurNameHuman)
此外,这一行是错误的:
void *PointeurWelcome = &Welcome(PointeurNameHuman);
您可能也是这个意思:
void (*PointeurWelcome)() = &Welcome;
同样这一行很奇怪:
char NameHuman[50] = "HUMAN";
通常,当您使用常量数据初始化数组时,不会声明数组大小。相反,你可以这样写:
char NameHuman[] = "HUMAN";
这样做的优点是您不会在常量中包含所有额外的尾随零字节。
此外,当您调用 PointeurWelcome
时,Menu
内的位置在代码中的该点未声明。该变量在该范围内不存在。
此外,在Menu
内部,人们通常使用局部变量从scanf
读取数据。例如,像这样:
int Choix;
scanf("%d", &Choix);
而不是你拥有的。
我强烈建议您启用编译器警告,因为您可能会发现您犯的其他几个错误。
关于调用函数 - 获取 "lvalue required as unary ‘&’ 操作数”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26246538/
[over.unary]/2 The unary and binary forms of the same operator are considered to have the same name.
这里是this link它说: The static_cast keyword can be used for any normal conversion between types. Convers
公式开头的两个 - 符号是什么意思? 例如:此公式获取字符串日期并将其转换为 Excel 日期序列号: =--(MID(S2,4,3)&LEFT(S2,3)&MID(S2,7,4)) 公式运行正常,我
我正在尝试将 php 算法移植到 perl,但我在使用我不熟悉的一位运算符时遇到了困难... 所以 php 代码看起来像这样: ... $var = '348492634'; print ~$var;
很抱歉重复这个问题,但我无法理解(我认为我的问题是)指针。有人可以帮我解释一下吗?我已经浏览了大量的 stackoverflow 问题、c 教程,而且它最令人困惑,因为每个解决方案似乎都与另一个解决方
我正在尝试读取包含以下内容的文本文件 sport.txt,并尝试将用户输入与文本文件中找到的运动名称相匹配。 如果找到它会打印“找到运动”,如果没有找到它会打印“找不到运动”。 显示的第一个示例看起来
我写的 Bash 不多,所以我对如何解决这个问题有点困惑。我需要检查命令返回的值是否大于 x。当它运行时,我得到了 [: -gt: unary operator expected 我无法修复。 这是我
我正在编写一个简单的代码,输出目录中以 00 开头的子目录的数量。这是我的代码: #!/bin/bash maxout=2 function getnumber { number=`ls |
#!/bin/bash export PROCNAME=test export TABLE_ID=0 if [ ${TABLE_ID} -eq "" ]; then echo h
以下代码片段在我的工作系统中运行,同样的代码在我的 PC 中抛出错误。 std::bitset my_bit(*(uint32_t*)&(OFDM_cod[V][a/8].real())); Erro
我在玩codewar,我赢不了这个挑战。链接在这里: http://www.codewars.com/kata/54ca3e777120b56cb6000710/train/python 这是我的实现
我在第 5 行和第 11 行收到错误一元运算符。请帮助解决这个问题。 echo ”enter the number” read n q=$n a=0 while [ $q – gt 0 ] do
C++ 标准库提供了将比较器传递给 std::sort 的功能.但是,我的代码中有很多情况需要对 T 的列表进行排序。函数对象f .像这样的比较器将是一个有效的选择: bool compare(con
这个问题应该是给语言律师的。 假设 signed 和 unsigned int 都是 32 位宽。如 n3337.pdf 草案 5.3.1.8 所述, (-(0x80000000u)) = 0x100
鉴于 a 是未定义的,下面看起来不错: a + b + blah # => NameError: undefined local variable or method `a' for main:Obj
给定 Ruby 代码 line = "first_name=mickey;last_name=mouse;country=usa" record = Hash[*line.split(/=|;/)]
shell脚本报错:"[: =: unary operator expected"解决办法 在匹配字符串相等时,我用了类似这样的语句:
我已经想出了如何优先实现二元运算符,像这样(伪代码): method plus times() while(consume(plus_t)) do times() en
考虑这个管道。 let Pipeline = [ { $match: { }}, { $group: { workHours: { $sum: { $divid
我目前遇到一个问题,在你看它之前,请尝试认为我只是一个尝试使用带有函数的指针的初学者。 我解释一下自己:我需要有一个菜单( Function )可以调用任何其他函数,但我的问题是我从我的“main”调
我是一名优秀的程序员,十分优秀!