字符串超有趣有关问题
字符串超有趣问题!
学习宏中无意中发现的
本来是这样的
为什么这样也行?不应该是
这样的吗????
------解决方案--------------------
标准规定
预处理阶段 把代码中任一多个空白字符分割的字符串字面量处理为一个字符串
------解决方案--------------------
参考MSDN:http://msdn.microsoft.com/zh-cn/library/wc7014hz.aspx
int printf(
const char *format [,
argument]...
);
参数
format
格式控件。
argument
可选参数。
实例:
char ch = 'h',
*string = "computer";
wchar_t wch = L'w',
*wstring = L"Unicode";
int count = -9234;
double fp = 251.7366;
// Display integers
printf( "Integer formats:\n"
" Decimal: %d Justified: %.6d "
"Unsigned: %u\n",
count, count, count, count );
------解决方案--------------------
C标准中会自动把中间的双引号去掉,这个语句跟
这句效果是一样的。
------解决方案--------------------
c语言规定。。。
#include <stdio.h>
int main()
{
printf("%d" "%d" "%d" "%d" "\n", 1, 2, 3, 4);//为什么这样也行?
return 0;
}
学习宏中无意中发现的
本来是这样的
#include <stdio.h>
#define D "%d"
#define NL "\n"
#define D4 D D D D NL
int main()
{
printf(D4, 1, 2, 3, 4);
return 0;
}
为什么这样也行?不应该是
printf("%d %d %d %d \n",1,2,3,4);
这样的吗????
------解决方案--------------------
标准规定
预处理阶段 把代码中任一多个空白字符分割的字符串字面量处理为一个字符串
------解决方案--------------------
参考MSDN:http://msdn.microsoft.com/zh-cn/library/wc7014hz.aspx
int printf(
const char *format [,
argument]...
);
参数
format
格式控件。
argument
可选参数。
实例:
char ch = 'h',
*string = "computer";
wchar_t wch = L'w',
*wstring = L"Unicode";
int count = -9234;
double fp = 251.7366;
// Display integers
printf( "Integer formats:\n"
" Decimal: %d Justified: %.6d "
"Unsigned: %u\n",
count, count, count, count );
------解决方案--------------------
#include <stdio.h>
int main()
{
printf("%d" "%d" "%d" "%d" "\n", 1, 2, 3, 4);//为什么这样也行?
return 0;
}
C标准中会自动把中间的双引号去掉,这个语句跟
printf("%d %d %d %d \n", 1, 2, 3, 4);
这句效果是一样的。
------解决方案--------------------
c语言规定。。。