ngx_string()错误分析

 1 #define ngx_string(str)  { sizeof(str)  - 1, (u_char) str }
 2 
 3 typedef struct {
 4      uint len;
 5      u_char* data;    
 6 }ngx_str_t;
 7 
 8 //1、
 9 ngx_str_t test = ngx_string("a"); //不报错
10 
11 //2、
12 ngx_str_t test_error;
13 test_error = ngx_string("a"); // gcc报错,g++不报错。

ngx_string 是宏定义,定义变量的时候可以看成直接拿里面的值给变量赋值,声明变量,看成ngx_str_t test = {sizeof("a")-1, "a"},是符合定义的;

而给变量赋值的时候不能一次赋两个值。

原文地址:https://www.cnblogs.com/micoblog/p/10518367.html