return static_cast <int> C++和C.

 至尊白云_878 发布于 2023-02-11 09:52

我想知道C和C++语言.

C++使用:

return static_cast

我怎样才能转换return static_cast成C?

例如:

C printf()

C++ cout

kfsone.. 8

C样式转换只是在值前面加上括号中的类型.代替

static_cast(value)

你干脆做

(type)value

例如

static_cast(x)

(int)x

或者你可以做到

#ifdef __cplusplus
    #define STATIC_CAST(Type_, Value_) static_cast(Value_)
#else
    #define STATIC_CAST(Type_, Value_) (Type_)(Value_)
#endif

并对两种语言使用一次调用

STATIC_CAST(int, x) // C++ static_cast(x), C (int)(x)

对于简单的情况,C语言中围绕Value_的额外括号不是必需的,但是因为这是一个宏,如果你说

STATIC_CAST(int, 1.0 + 2.0)

你不希望它扩展到

(int)1.0 + 2.0

但希望它扩展到

(int)(1.0 + 2.0)

请注意,C++允许C形式的转换,但模板化的转换机制是C++工程师的首选.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有