phelps_pass 2017-02-13 04:23 采纳率: 0%
浏览 2550

VS2015 编译预处理问题

VS C+++编译预处理问题

微软

编译器

编译平台:vs2015 update3,代码如下:
#ifdef _WIN64
inline uint16_t zBSF(unsigned long * Index,uint64_t x)
{
return _BitScanForward64(Index,x); //编译报错行
}
#endif
在编译目标平台选项设为x64的时候没有问题,但是设为x86的时候,报错,错误信息如下:
Error C3861 '_BitScanForward64': identifier not found
我已经做了#ifdef _WIN64预处理了,指示预编译在x86下不要处理这段代码了啊,怎么感觉好像编译器不予理睬一般。这种预处理,我在其他地方用的很多,没有出现过什么问题。这个_BitScanForward64按微软说法是编译器内嵌函数,但是这又如何?指明了不要处理,为啥还处理,跪求求大神指点
不好意思,囊中空空,没有C币悬赏了啊
编译命令行所有选项:
/GS /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /sdl /Fd"Debug\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\CPPTEST.pch"
链接命令行所有选项:
/OUT:"D:\VS\CPPTEST\Debug\CPPTEST.exe" /MANIFEST /NXCOMPAT /PDB:"D:\VS\CPPTEST\Debug\CPPTEST.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"D:\VS\CPPTEST\Debug\CPPTEST.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\CPPTEST.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1

  • 写回答

1条回答 默认 最新

  • shen_wei 2017-02-13 07:00
    关注
    unsigned char _BitScanForward(
       unsigned long * Index,
       unsigned long Mask
    );
    unsigned char_BitScanForward64(
       unsigned long * Index,
       unsigned __int64 Mask
    ); 
    

    官方函数已经给出了32和64的不同使用方式。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图