C代码里面加一行网址依然可以运行,并不会报错,为何

如果说在C/C++代码里任意放一行URL,并不会造出编译器报错,甚至能正常运行,乍一听是不是会觉得很奇怪?

“语法里有这项吗,我编程那么多年怎么没听过?”

读者可以在暂停思考一下为什么。

 

在我看到这篇2011年的博客前我也觉得很奇怪,看完很快就恍然大悟了。

 
#include <stdio.h>

int main()
{
    https://kestory.github.io/
    printf("hello, world\n");
    return 0;
}

运行得到正常输出(C++版的同理)

一句话解释:The code works fine because https: is a label and // following it begins a comment.

 

1、因为这里的https:被当做标签(label),就是那个配合goto语句使用的东西。

  • 标签(label)是除了C语言关键字外的任何纯文本,它可以在在C程序任何地方设置(上方或下方)goto语句。

  • 强烈不建议在任何编程语言使用goto,因为它使得难以跟踪程序的控制流程,使程序难以理解,难以修改。

2、//以及之后就是单行注释语句了

C99标准里//已经是合法的注释符号了,不信你看:C99 standard

 

所以,只是刚好URL的格式满足了xxx://xxx的样子,所以这样写必然也不会有什么问题

比如我写个zhihu进去

 

 

 

真相,就是这么简单!

 

参考原文:https://susam.in/blog/url-in-c/

 

  • 1
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值