标题:打印到屏幕上的结果为什么会乱码?
取消只看楼主
王黄丽
Rank: 1
等 级:新手上路
帖 子:53
专家分:4
注 册:2018-7-27
结帖率:100%
 问题点数:0 回复次数:1 
打印到屏幕上的结果为什么会乱码?
#include <stdio.h>

typedef enum {INT, SHORT, CHAR} type;

void print(const void* p_shu_zi,type t) {
    switch(t) {
    case INT:
        printf("%d\n",*(const int*)p_shu_zi);
        break;
    case SHORT:
        printf("%hd\n",*(const short*)p_shu_zi);
        break;
    case CHAR:
        printf("%c\n",*(const char*)p_shu_zi);
        break;
    }
}

int main() {
    int shu_zi = 7;
    char zi_fu = 'A';
    short duan = 17;
    printf(&shu_zi, INT);
    printf(&zi_fu, CHAR);
    printf(&duan, SHORT);
    return 0;
}

--------------------Configuration: 29whl - Win32 Debug--------------------
Compiling...
29whl.c
G:\C语言编程\WHL\29whl\29whl.c(23) : warning C4133: 'function' : incompatible types - from 'int *' to 'const char *'
G:\C语言编程\WHL\29whl\29whl.c(25) : warning C4133: 'function' : incompatible types - from 'short *' to 'const char *'

29whl.obj - 0 error(s), 2 warning(s)


打印的结果:
A烫?Press any key to continue

搜索更多相关主题的帖子: INT SHORT CHAR const printf 
2018-08-01 14:51
王黄丽
Rank: 1
等 级:新手上路
帖 子:53
专家分:4
注 册:2018-7-27
得分:0 
不兼容应该怎么解决?
2018-08-01 14:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488956-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026179 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved