当前位置: 首页 > news >正文

b2c商城网站建设公司百度竞价有点击无转化

b2c商城网站建设公司,百度竞价有点击无转化,电商网站制作案例,顺企网官网企业名录文章目录 编译时校验功能描述代码实现示例代码正常编译示例编译错误示例预处理之后的结果 代码解析!!estruct {int:-!!(e); }sizeof(struct {int:-!!(e); }) 参考代码 编译时校验 功能描述 用于在编译时检查一个条件是否为真,如果条件为真则会编译失败&#xff0c…

文章目录

  • 编译时校验
    • 功能描述
    • 代码实现
    • 示例代码
      • 正常编译示例
      • 编译错误示例
      • 预处理之后的结果
    • 代码解析
      • `!!e`
      • `struct {int:-!!(e); }`
      • `sizeof(struct {int:-!!(e); })`
    • 参考代码

编译时校验

功能描述

用于在编译时检查一个条件是否为真,如果条件为真则会编译失败,编译器报错

反之如果条件为假,则编译正常,且有返回值,返回 0。

代码实现

/** Force a compilation error if condition is true, but also produce a* result (of value 0 and type int), so the expression can be used* e.g. in a structure initializer (or where-ever else comma expressions* aren't permitted).*/
#define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))

参数 e 表示用于判断的表达式

示例代码

正常编译示例

#include <stdio.h>#define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))int main(void)
{printf("Compilation successful %d.\n", BUILD_BUG_ON_ZERO(0));return 0;
}

结果打印

Compilation successful 0.

编译错误示例

#include <stdio.h>#define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))int main(void)
{printf("Compilation successful %d.\n", BUILD_BUG_ON_ZERO(1));return 0;
}

编译错误信息

test.c: In function ‘main’:
test.c:3:51: error: negative width in bit-field ‘<anonymous>3 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))|                                                   ^
test.c:7:44: note: in expansion of macro ‘BUILD_BUG_ON_ZERO’7 |     printf("Compilation successful %d.\n", BUILD_BUG_ON_ZERO(1));

预处理之后的结果

gcc -E test.c -> test.i
int main(void)
{printf("Compilation successful %d.\n", ((int)(sizeof(struct { int:(-!!(1)); }))));return 0;
}

代码解析

!!e

对条件 e 进行两次逻辑非运算,得到 逻辑值 结果 0 或者 1。如果表达式 e 的结果为 0 ,则得到 0 , 如果为非 0 值,则得到 1 。

struct {int:-!!(e); }

如果表达式 e 的结果为 0,则得到结构体 struct {int:0;},这是一个匿名的位域结构体,位域宽度为 0。

如果表达式 e 的结果为 1,则得到结构体 struct {int:-1;},则编译错误。由于位域的宽度不能是负的,所以编译错误,提示错误 error: negative width in bit-field <anonymous>

sizeof(struct {int:-!!(e); })

如果表达式 e 的结果为 0,则使用 sizeof 运算符计算得到这个匿名结构体 struct {int:0;} 的大小为 0,宏的返回值为 0。

参考代码

  • https://blog.csdn.net/u012028275/article/details/127478561
http://www.mmbaike.com/news/87753.html

相关文章:

  • 公众号制作培训长春网站优化咨询
  • 中山网站推广重庆网站seo建设哪家好
  • 云南省网站开发公司怎么建立一个公司的网站
  • 个人网站网页首页百度关键词seo公司
  • 红酒网站建设方案范本长春关键词优化平台
  • 潍坊网站建设一品网络济南优化seo公司
  • 怎么做网站的教程百度热搜关键词排名
  • 企业网站关键词排名 s优化设计六年级下册数学答案
  • 广东网站建设便捷网络推广app
  • 日照东港城市建设投资有限公司网站龙岗网络公司
  • 棋牌游戏网站建设费用外贸谷歌seo
  • 网站建设青岛百度一下1688
  • 新手做代购网站扫货长春免费网上推广
  • 如东做网站电商网站公司
  • 群晖nas做网站服务器百度seo排名360
  • 兰州公司网站建设竞价推广托管多少钱
  • 网站首页ui农业推广
  • 看优秀摄影做品的网站百度推广客户端教程
  • wordpress的登录函数使用教程网站搜索排名优化软件
  • 网页编辑超级工具箱seo哪里有培训
  • 顶尖的设计网站百度快速收录软件
  • 英语网站建设网站seo视频教程
  • wordpress速度优化存百度seo排名规则
  • 慈溪seo排名广州seo实战培训
  • 专门做招商的网站是什么网址查询工具
  • 自己做的网站怎么加搜索功能企业培训考试平台官网
  • 网站公司靠什么赚钱淘宝指数官网
  • 网站制作公司咨询网站制作公司厦门百度关键词优化
  • 个人网站建设教学视频泉州百度网站推广
  • 这样做网站推广seo学徒招聘