3.14L是一个long double文字,同时3.14是一个double文字.在这种情况下它不会有太大的区别,因为它们都用于初始化long int.结果将是3.
编辑:好的,3L是一个long文字,同时3是一个int文字.它仍然没有太大的区别,因为int它将被"提升"到很长一段时间.两种情况下的结果都是相同的.
编辑2:它可能会产生影响的地方是这样的:
printf("%ld\n", 123);
Run Code Online (Sandbox Code Playgroud)
这是未定义的行为,因为格式字符串指定了一个long并且只int传递了一个.这是正确的:
printf("%ld\n", 123L);
Run Code Online (Sandbox Code Playgroud)