You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Code::Blocks的MinGW环境中无法识别long long、long double的问题

问题原因及解决办法

一、格式符使用错误(核心问题)

  • long long int:你误用了%Ld作为格式符,正确的格式符是小写的%lld(无论输出printf还是输入scanf都适用)。大写L是为long double设计的格式符,类型不匹配必然触发警告。
  • long double:printf输出时用%Lf,scanf输入时同样用%Lf,注意不要和double的%f混淆。

正确示例代码:

#include <stdio.h>

int main() {
    long long int big_num = 9876543210123LL;
    long double precise_num = 2.718281828459045235L;
    
    printf("long long int 值:%lld\n", big_num);
    printf("long double 值:%Lf\n", precise_num);
    
    scanf("%lld", &big_num);
    scanf("%Lf", &precise_num);
    
    return 0;
}

二、编译器默认C标准过旧

Code::Blocks 20.03自带的MinGW GCC默认可能采用C89(ANSI C)标准,而long long int是C99标准才正式纳入的类型。以C89模式编译时,编译器会将这类新类型视为非标准扩展,从而发出警告。

解决步骤:

  1. 打开Code::Blocks,依次进入 Settings -> Compiler -> Compiler settings -> Other options
  2. 在输入框中添加编译参数:-std=c99 或 -std=c11(推荐使用更新的C11标准)
  3. 点击OK保存设置,重新编译代码即可消除标准不兼容的警告

三、确认编译器版本支持

MinGW GCC 4.0及以上版本完全支持long long int和long double类型,Code::Blocks 20.03自带的版本肯定满足要求。如果仍有疑问,可通过以下方式验证:

  • 打开Code::Blocks的 Tools -> Compiler Debugger -> Build options,查看编译器版本;或在命令行执行 gcc --version

内容的提问来源于stack exchange,提问作者Vinayak Deshmukh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:31:05