c - "error : invalid use of void expression"是什么?

标签 c compiler-errors

我正在尝试创建一个十六进制到 Base64 转换器。我不知道我是否像我现在尝试那样朝着正确的方向转换二进制文件,或者是否有更直接的转换方法。任何有关转换数学或如何将十六进制编码为 Base64 的建议都会非常有帮助。

相反,我收到了错误(更新代码后出现的新错误):

hexto64.c: In function ‘main’:
hexto64.c:21:17: error: lvalue required as left operand of assignment
ReVerse(input) = RevHex;
               ^

如果有人可以帮助解释这个错误的含义以及如何修复 会有很大帮助!预先感谢您。

编辑:感谢评论中的少数人,我现在明白了这个错误。

这是我的代码(已更新):

#include <stdio.h>
#include <math.h>
#include <string.h>

char ReVerse(const char *str)
{
    if (*str != '\0')
            ReVerse((str + 1));
    printf("%c", *str);
}



int main()
{
    char RevHex;
    char input[4096] = {0};

    printf("Enter Hexadecimal: ");
    scanf("%s", input);
    RevHex = ReVerse(input);
    printf("\n");
    return 0;
}

最后编辑:我在代码中发现了错误。谢谢大家的反馈!

最佳答案

您尝试使用函数 ReVerse() 的返回值,但该函数返回 void。它是“无”,所以你不能将“无”分配给某些东西。在这里,您尝试将数组 RevHex 设置为“nothing”。这没有道理。

关于c - "error : invalid use of void expression"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41711034/

相关文章:

c++ - 如何在Arduino-ESP8266上从C/C++中的字符串解析time_t?

objective-c - 从枚举派生字符串的方法

C++ 重载时的编译错误

c - 我在这里做错了什么?

c++ - C/C++ 标识符和文件名中的 camelCase 与 snake_case

c - 如何打印无符号整数的特定字节?

c - 将 strcpy() 与结构数组(及其元素)一起使用不起作用

c++ - Boost.spirit代码。编译错误

c# - 编译Windows Form应用程序时出现错误MSB3095

objective-c - 接口(interface)类型不能静态分配?