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

网站怎么做短信ip限定怎么建设批量模板网站

网站怎么做短信ip限定,怎么建设批量模板网站,自己架设网站,中学生制作的网站在回答标题问题之前#xff0c;先了解下什么是泛型编程。泛型编程#xff08;generic programming#xff09;是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型#xff0c;在实例化时作为参数指明这些类型。C支持… 在回答标题问题之前先了解下什么是泛型编程。泛型编程generic programming是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型在实例化时作为参数指明这些类型。C支持泛型编程也就是模板比如#include  template class T T add(T a,T b){T ret  a  b;std::cout a      b     ret  std::endl;return ret; } int main(){add(1,2);  // 整数相加add(1.2,2.3); // 浮点数相加return 0; }运行结果1  2  3 1.2  2.3  3.5从上面的结果可以看到对于调用add函数如果传入的是整型则按照整型加法计算如果是浮点数则按照浮点数进行加法计算。也就是说add函数没有针对特定类型泛型。你同样可以使用重载实现上面的功能但是存在大量重复代码。C语言支持泛型编程吗很遗憾C语言本身不支持真正意义上的泛型编程但是却在一定程度上可以“实现泛型编程”。_Generic关键字_Generic是C11的关键字通过该关键字可以有一个泛型表达式_Generic((value). int:int, float:float,char*:char*,default:other type)什么意思呢如果value是int类型那么表达式的值就是“int”其他的以此类推。看起来是不是和switch语句有点类似呢根据这个示例我们来实现一个功能打印变量或常量到底是什么类型#include  #define TYPE(v) _Generic((v), \int:int, \char:char, \float:float, \double:double, \char*:char*, \default:other type) int main(void) {printf(1  2 type: %s\n,TYPE(1  2));printf(1/3 type: %s\n,TYPE(1/3));printf(2/3 type: %s\n,TYPE((float)2/3));printf(xxx type: %s\n,TYPE(xxx));return 0; }这里为了方便使用我们通过define关键字将泛型表达式简化。运行结果1  2 type: int 1/3 type: int 2/3 type: float                                                         xxx type: char*可以看到通过TYPE就可以获得表达式的结果类型这对初学者来说可真是福音了。泛型算法既然C语言有_Generic关键字了那么我们尝试实现开头C示例代码中的加法。看过上面的例子后相信你已经会了#include  // int类型加法 int addI(int a, int b) {printf(%d  %d  %d\n,a,b, a  b );return (a  b); } // double类型加法 double addF(double a, double b) {printf(%f  %f  %f\n,a,b, a  b );return (a  b); } void unsupport(int a,int b) {printf(unsupport type\n); } #define ADD(a,b) _Generic((a), \int:addI(a,b),\double:addF(a,b), \default:unsupport(a,b)) int main(void) {ADD(1 , 2);ADD(1.1,2.2);return 0; }观察上面的代码我们注意到在这里我们需要定义两种类型的加法实际上通过C的模板由编译器帮我们完成了这件事由于C语言中并不支持重载因此两个加法的函数名不一样。由于涉及参数有两个在做类型判断时如果两个参数不一致可能仍然存在编译问题调用者无需区分被加对象是什么类型都可以统一使用ADDC99的tgmath.h前面说到_Generic关键字在C11中才有那么C99怎么办呢实际上tgmath.h中提供了一些泛型类型宏如果math.h的函数中定义了floatdouble和long double版本tgmath就会提供一个泛型类型宏。效果和前面的例子一样举个例子#include  #include  int main(void) {float f  4.0f;long double d  1.44;printf(%f\n,sqrt(f)); // 实际上调用了sqrtfprintf(%Lf\n,sqrt(d)); // 实际上调用了sqrtlreturn 0; }编译运行结果2.000000 1.200000但是不得不说tgmath中提供的泛型宏也是有限的。声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。
http://www.huolong8.cn/news/14058/

相关文章:

  • 昆山城乡建设局网站营销策略4p
  • 站外调用WordPress评论网页自动跳转
  • 上海网站建设学校360建
  • 专业柳州网站建设哪家好深圳网站建设在哪里找
  • 厦门数字引擎 怎么打不开网站义乌网站建设怎么做好
  • 网站建设基本流程 dns帮别人做钓鱼网站犯法吗
  • 特效相册网站源码南庄网站开发
  • 延安网站建设重庆建设工程信息网官网入口30系统登入页面
  • 做网站维护前景建设银行网站修改手机号码
  • 九江做网站大概多少钱嵌入式软硬件开发
  • 网站被黑客入侵怎么办集宁做网站的公司
  • 网站引导页怎么做的网站的设计风格
  • 网站建设中行为的名词解释用记事本制作html网页代码
  • 网站根验证文件在哪网站设计O2O平台
  • 嘉兴建站软件北京企业网站建设公司
  • 开封网站seo养生网站模板
  • 淮安网站seo网址导航源码
  • 网站采编队伍建设2022最新国内新闻50条简短
  • 微网站后台怎么查询网站的外链
  • 玉林市住房和城乡建设厅网站潍坊做企业手机版网站
  • 网站(建设)安全自查报告ui设计难学么
  • 有哪些做留学资讯的网站检测 网站优化
  • 亳州蒙城网站建设哪里做网站最好网站
  • 高端品牌网站建设费用天津网站推广外包
  • 做百度网站每年的费用多少钱wordpress约课系统
  • 镇江专业网站制作简单的网站建设公司的模板
  • 手机微信可以做网站吗大连是谁建设的
  • 怎么查看网站是asp还是php常见的网站空间有哪些
  • 用asp.net做网站营销型网站建设效果
  • 动易cms网站后台很慢是什么原因查备案网站备案