You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
746 lines
36 KiB
746 lines
36 KiB
<!DOCTYPE html> |
|
<html lang=""> |
|
<head><meta charset="UTF-8"/> |
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/> |
|
|
|
|
|
<meta http-equiv="Cache-Control" content="no-transform" /> |
|
<meta http-equiv="Cache-Control" content="no-siteapp" /> |
|
|
|
<meta name="theme-color" content="#f8f5ec" /> |
|
<meta name="msapplication-navbutton-color" content="#f8f5ec"> |
|
<meta name="apple-mobile-web-app-capable" content="yes"> |
|
<meta name="apple-mobile-web-app-status-bar-style" content="#f8f5ec"> |
|
|
|
<meta name="description" content="总结一下我的代码风格"/><meta name="keywords" content="iotcat,yimian,blog" /><link rel="alternate" href="/atom.xml" title="EEE.DOG"><link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?v=1.0.0" /><script type="text/javascript" src="https://cdn.yimian.xyz/ushio-js/ushio-head.min.js"></script> |
|
|
|
<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/kayo/lib/iziModal/iziModal.min.css" /> |
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/kayo/lib/iziToast/iziToast.min.css" /> |
|
|
|
<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/shaky/shaky.css"> |
|
<link rel="canonical" href="https://www.eee.dog/tech/my-code-style.html"/> |
|
|
|
<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/kayo/lib/fancybox/jquery.fancybox.css" /><script type="text/x-mathjax-config"> |
|
MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']] } }); |
|
</script> |
|
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> |
|
<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/kayo/css/style.css?v=1.0.0" /> |
|
|
|
<!-- Global site tag (gtag.js) - Google Analytics --> |
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-169276192-1" data-pjax></script> |
|
<script> |
|
pjax_google_analytics = () => { |
|
window.dataLayer = window.dataLayer || []; |
|
function gtag(){dataLayer.push(arguments);} |
|
gtag('js', new Date()); |
|
|
|
gtag('config', 'UA-169276192-1'); |
|
} |
|
</script><script id="baidu_push"> |
|
(function(){ |
|
var bp = document.createElement('script'); |
|
var curProtocol = window.location.protocol.split(':')[0]; |
|
if (curProtocol === 'https') { |
|
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; |
|
} |
|
else { |
|
bp.src = 'http://push.zhanzhang.baidu.com/push.js'; |
|
} |
|
var s = document.getElementsByTagName("script")[0]; |
|
s.parentNode.insertBefore(bp, s); |
|
})(); |
|
</script> |
|
<script> |
|
window.config = {"leancloud":"","toc":true,"fancybox":true,"pjax":{"enable":true,"loadingbar":true},"latex":true}; |
|
</script> |
|
|
|
<title>总结一下我的代码风格 - EEE.DOG</title> |
|
<meta name="generator" content="Hexo 4.2.1"><link rel="alternate" href="/atom.xml" title="EEE.DOG" type="application/atom+xml"> |
|
</head> |
|
|
|
<body><div id="mobile-navbar" class="mobile-navbar"> |
|
<div class="mobile-header-logo"> |
|
<a href="/." class="logo">EEE.DOG</a> |
|
</div> |
|
<div class="mobile-navbar-icon"> |
|
<span></span> |
|
<span></span> |
|
<span></span> |
|
</div> |
|
<div class="loading-bar"> |
|
<div class="progress"></div> |
|
</div> |
|
</div> |
|
|
|
<nav id="mobile-menu" class="mobile-menu slideout-menu"> |
|
<ul class="mobile-menu-list"><div id="mobile-menu-Archives"> |
|
<a href="/archives/"> |
|
<li class="mobile-menu-item">Archives |
|
</li> |
|
</a></div><div id="mobile-menu-Categories"> |
|
<a href="/categories/"> |
|
<li class="mobile-menu-item">Categories |
|
</li> |
|
</a></div><div id="mobile-menu-Projects"> |
|
<a href="#"> |
|
<li class="mobile-menu-item">Projects |
|
</li> |
|
</a><ul class="sub-menu" style="display: none;"> |
|
<li> |
|
<a href="https://fp.yimian.xyz/" target="_blank" rel="noopener"> |
|
fp |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://wiot.yimian.xyz/" target="_blank" rel="noopener"> |
|
wiot |
|
</a> |
|
</li> |
|
</ul> |
|
<script>$('#mobile-menu-Projects').click(function(){ |
|
$("#mobile-menu-Projects ul").toggle(); |
|
})</script> |
|
</div><div id="mobile-menu-Map"> |
|
<a href="#"> |
|
<li class="mobile-menu-item">Map |
|
</li> |
|
</a><ul class="sub-menu" style="display: none;"> |
|
<li> |
|
<a href="https://api.yimian.xyz/" target="_blank" rel="noopener"> |
|
APIs |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://img.yimian.xyz/" target="_blank" rel="noopener"> |
|
Imgs |
|
</a> |
|
</li> |
|
<li> |
|
<a href="/"> |
|
Imgbed |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://share.yimian.xyz/" target="_blank" rel="noopener"> |
|
Fileshare |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://monitor.yimian.xyz/" target="_blank" rel="noopener"> |
|
Monitor |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://acg.watch/" target="_blank" rel="noopener"> |
|
ACG.WATCH |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://onedrive.yimian.xyz/" target="_blank" rel="noopener"> |
|
Oneindex |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://proxy.yimian.xyz/" target="_blank" rel="noopener"> |
|
Proxy |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://shorturl.yimian.xyz/" target="_blank" rel="noopener"> |
|
ShortenURL |
|
</a> |
|
</li> |
|
</ul> |
|
<script>$('#mobile-menu-Map').click(function(){ |
|
$("#mobile-menu-Map ul").toggle(); |
|
})</script> |
|
</div><div id="mobile-menu-About"> |
|
<a href="#"> |
|
<li class="mobile-menu-item">About |
|
</li> |
|
</a><ul class="sub-menu" style="display: none;"> |
|
<li> |
|
<a href="/links/"> |
|
links |
|
</a> |
|
</li> |
|
<li> |
|
<a href="https://iotcat.me/" target="_blank" rel="noopener"> |
|
Me |
|
</a> |
|
</li> |
|
</ul> |
|
<script>$('#mobile-menu-About').click(function(){ |
|
$("#mobile-menu-About ul").toggle(); |
|
})</script> |
|
</div></ul> |
|
</nav> |
|
<div class="container" id="mobile-panel"> |
|
<header id="header" class="header"><div class="logo-wrapper"> |
|
<a href="/." class="logo">EEE.DOG</a> |
|
</div> |
|
|
|
<nav class="site-navbar"><ul id="menu" class="menu"><li class="menu-item"> |
|
<a id="menu-Archives" class="menu-item-link" href="/archives/"> |
|
Archives |
|
</a> |
|
|
|
</li> |
|
<li class="menu-item"> |
|
<a id="menu-Categories" class="menu-item-link" href="/categories/"> |
|
Categories |
|
</a> |
|
|
|
</li> |
|
<li class="menu-item"> |
|
<a id="menu-Projects" class="menu-item-link" href="#"> |
|
Projects |
|
</a> |
|
|
|
<script> |
|
$("#menu-Projects").click(function(){ |
|
iziToast.question({ |
|
timeout: 20000, |
|
close: false, |
|
overlay: true, |
|
displayMode: 'once', |
|
//id: 'question', |
|
zindex: 999, |
|
title: 'Projects', |
|
message: '', |
|
position: 'center', |
|
buttons: [ |
|
['<button><b>fp</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://fp.yimian.xyz/"); |
|
else |
|
window.location.href="https://fp.yimian.xyz/"; |
|
}, true], |
|
['<button><b>wiot</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://wiot.yimian.xyz/"); |
|
else |
|
window.location.href="https://wiot.yimian.xyz/"; |
|
}, true], |
|
['<button><b>close</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
}, true], |
|
] |
|
}); |
|
}); |
|
</script> |
|
</li> |
|
<li class="menu-item"> |
|
<a id="menu-Map" class="menu-item-link" href="#"> |
|
Map |
|
</a> |
|
|
|
<script> |
|
$("#menu-Map").click(function(){ |
|
iziToast.question({ |
|
timeout: 20000, |
|
close: false, |
|
overlay: true, |
|
displayMode: 'once', |
|
//id: 'question', |
|
zindex: 999, |
|
title: 'Map', |
|
message: '', |
|
position: 'center', |
|
buttons: [ |
|
['<button><b>APIs</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://api.yimian.xyz/"); |
|
else |
|
window.location.href="https://api.yimian.xyz/"; |
|
}, true], |
|
['<button><b>Imgs</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://img.yimian.xyz/"); |
|
else |
|
window.location.href="https://img.yimian.xyz/"; |
|
}, true], |
|
['<button><b>Imgbed</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("/"); |
|
else |
|
window.location.href="undefined"; |
|
}, true], |
|
['<button><b>Fileshare</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://share.yimian.xyz/"); |
|
else |
|
window.location.href="https://share.yimian.xyz/"; |
|
}, true], |
|
['<button><b>Monitor</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://monitor.yimian.xyz/"); |
|
else |
|
window.location.href="https://monitor.yimian.xyz/"; |
|
}, true], |
|
['<button><b>ACG.WATCH</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://acg.watch/"); |
|
else |
|
window.location.href="https://acg.watch/"; |
|
}, true], |
|
['<button><b>Oneindex</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://onedrive.yimian.xyz/"); |
|
else |
|
window.location.href="https://onedrive.yimian.xyz/"; |
|
}, true], |
|
['<button><b>Proxy</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://proxy.yimian.xyz/"); |
|
else |
|
window.location.href="https://proxy.yimian.xyz/"; |
|
}, true], |
|
['<button><b>ShortenURL</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://shorturl.yimian.xyz/"); |
|
else |
|
window.location.href="https://shorturl.yimian.xyz/"; |
|
}, true], |
|
['<button><b>close</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
}, true], |
|
] |
|
}); |
|
}); |
|
</script> |
|
</li> |
|
<li class="menu-item"> |
|
<a id="menu-About" class="menu-item-link" href="#"> |
|
About |
|
</a> |
|
|
|
<script> |
|
$("#menu-About").click(function(){ |
|
iziToast.question({ |
|
timeout: 20000, |
|
close: false, |
|
overlay: true, |
|
displayMode: 'once', |
|
//id: 'question', |
|
zindex: 999, |
|
title: 'About', |
|
message: '', |
|
position: 'center', |
|
buttons: [ |
|
['<button><b>links</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("true" == "true") |
|
pjax.loadUrl("/links/"); |
|
else |
|
window.location.href="/links/"; |
|
}, true], |
|
['<button><b>Me</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
if("undefined" == "true") |
|
pjax.loadUrl("https://iotcat.me/"); |
|
else |
|
window.location.href="https://iotcat.me/"; |
|
}, true], |
|
['<button><b>close</b></button>', function (instance, toast) { |
|
|
|
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); |
|
}, true], |
|
] |
|
}); |
|
}); |
|
</script> |
|
</li> |
|
</ul></nav> |
|
</header> |
|
|
|
<main id="main" class="main"> |
|
<div class="content-wrapper"> |
|
<div id="content" class="content"><article class="post"> |
|
<header class="post-header"> |
|
<h1 class="post-title">总结一下我的代码风格 |
|
</h1> |
|
|
|
<div class="post-meta"> |
|
<span class="post-time"> |
|
2019-02-26 |
|
</span><span class="post-category"> |
|
<a href="/categories/tech/">tech</a> |
|
</span> |
|
</div> |
|
</header> |
|
|
|
<div class="post-toc" id="post-toc"> |
|
<h2 class="post-toc-title">Contents</h2> |
|
<div class="post-toc-content"> |
|
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#关于强迫症"><span class="toc-text">关于强迫症</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#关于命名"><span class="toc-text">关于命名</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#常-变量命名"><span class="toc-text">常/变量命名</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#函数命名"><span class="toc-text">函数命名</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#关于注释"><span class="toc-text">关于注释</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#文件注释"><span class="toc-text">文件注释</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#类注释"><span class="toc-text">类注释</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#函数注释"><span class="toc-text">函数注释</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#一些小细节"><span class="toc-text">一些小细节</span></a></li></ol> |
|
</div> |
|
</div><div class="post-content"><p>我的代码风格大致有以下几种情况:组织中追随组织领导,公司里老板说的都对,学校里大佬教的都好╮(╯▽╰)╭ 仅其它一些自己的开源小项目则遵循以下风格→_→</p> |
|
<a id="more"></a> |
|
|
|
<h2 id="关于强迫症"><a href="#关于强迫症" class="headerlink" title="关于强迫症"></a>关于强迫症</h2><p>首先说好,</p> |
|
<p>四个空格的Tab缩进大法好!!!<br>四个空格的Tab缩进大法好!!!<br>四个空格的Tab缩进大法好!!!</p> |
|
<p>大括号不换行!!!<br>大括号不换行!!!<br>大括号不换行!!!</p> |
|
<h2 id="关于命名"><a href="#关于命名" class="headerlink" title="关于命名"></a>关于命名</h2><p>命名以让别人一眼就能明白为佳,理想中看你的代码就像读一首英语小诗般惬意 ::aru:insidious:: </p> |
|
<h3 id="常-变量命名"><a href="#常-变量命名" class="headerlink" title="常/变量命名"></a>常/变量命名</h3><p>编译器常量全大写,字符间用单下划线连接。如:</p> |
|
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">define</span> WIFI_PASSWD 12345</span></span><br></pre></td></tr></table></figure> |
|
|
|
<p>变量基本采用小驼峰命名,规则是单词之间直接连接(无需下划线),第一个单词全小写,之后的单词首字母大写。如:</p> |
|
<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">String</span> usrName = <span class="string">"IoTgod"</span>;</span><br></pre></td></tr></table></figure> |
|
<p>频繁调用的变量名称不易过长,但却要表意清晰。<br>要实现这一点,可以尝试部分省略单词中的非首字母元音,如 user 可以简写为 usr,password 可省略为 passwd 或 psswd。但简化后的名字仍需容易辨识。</p> |
|
<p>全局变量使用 g_ 加变量名称命名,如</p> |
|
<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">global <span class="keyword">int</span> g_isLightOn = <span class="number">0</span>;</span><br></pre></td></tr></table></figure> |
|
|
|
<p>局部静态变量使用 s_ 加变量名称,如</p> |
|
<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">static</span> <span class="keyword">int</span> s_errorCounter = <span class="number">0</span>;</span><br></pre></td></tr></table></figure> |
|
<p>常量变量,命名与普通变量一致,如</p> |
|
<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> <span class="keyword">float</span> pi = <span class="number">3.14159265</span>;</span><br></pre></td></tr></table></figure> |
|
|
|
<h3 id="函数命名"><a href="#函数命名" class="headerlink" title="函数命名"></a>函数命名</h3><p>函数命名技巧偷师自大名鼎鼎的<a href="https://nginx.org" target="_blank" rel="noopener">Nginx</a>,并在其基础上稍有变动。<br>基本法则为 <em>小写标签名+__(双下划线)+小写动词+小写名词()</em><br>名词与名词间用单下滑线链接。<br>例如:</p> |
|
<figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">db__get_usr_info</span><span class="params">()</span></span>;</span><br></pre></td></tr></table></figure> |
|
<p>其中db意为Database, 提示这个函数属于数据库操作标签,作用是获取用户信息。</p> |
|
<p>如果你不需要标签(比如在一些面向对象的语言中),你可以肆意省略标签。如:</p> |
|
<figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">get_usr_info</span><span class="params">()</span></span>;</span><br><span class="line"><span class="comment">//or</span></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">db</span>::<span class="title">get_usr_info</span><span class="params">()</span></span>;</span><br></pre></td></tr></table></figure> |
|
<p>与变量命名不同,函数命名不必要很短,以表达清楚函数功能为目标</p> |
|
<h2 id="关于注释"><a href="#关于注释" class="headerlink" title="关于注释"></a>关于注释</h2><p>其实如果能把变量函数命名做好,便不需要什么注释了,但遗憾的是,,我们还是不得不注释。。</p> |
|
<h3 id="文件注释"><a href="#文件注释" class="headerlink" title="文件注释"></a>文件注释</h3><p>文件注释主要用于声明一些文件功能,分类名,文件名,版权等信息,一个样式如下:</p> |
|
<figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * cookie支持 #文件功能</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@category</span> typecho #文件所属的分类</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@package</span> Cookie #文件名称</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@copyright</span> Copyright (c) 2008 Typecho team (http://www.typecho.org) #作者及版权信息</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@license</span> GNU General Public License 2.0 #开源协议</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@version</span> 2.1.1 #版本</span></span><br><span class="line"><span class="comment"> */</span></span><br></pre></td></tr></table></figure> |
|
<h3 id="类注释"><a href="#类注释" class="headerlink" title="类注释"></a>类注释</h3><p>类注释用于声明类的一些基本信息,如类功能,作者姓名、所属分类、所属文件。例如:</p> |
|
<figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 数据库支持 #功能说明</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@author</span> qining #作者</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@category</span> typecho #所属分类</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@package</span> Cookie #所在文件名称</span></span><br><span class="line"><span class="comment"> */</span></span><br></pre></td></tr></table></figure> |
|
<h3 id="函数注释"><a href="#函数注释" class="headerlink" title="函数注释"></a>函数注释</h3><p>函数注释在函数前,主要包含函数功能,函数修饰符,其各参数的类型、名称、以及文字说明,返回值的类型及文字说明。</p> |
|
<figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 获取指定的COOKIE值 #函数功能</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@access</span> public #函数修饰符,即函数是否可被外界访问</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> string key 指定的参数 #参数1,类型为string, 名称为key, 功能描述为 指定的参数</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> string default 默认的参数 #参数2,类型string,名称default,功能描述 默认的参数</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@return</span> int #返回整形返回值</span></span><br><span class="line"><span class="comment"> */</span></span><br></pre></td></tr></table></figure> |
|
|
|
<h2 id="一些小细节"><a href="#一些小细节" class="headerlink" title="一些小细节"></a>一些小细节</h2><ul> |
|
<li>赋值等号两边要有空格,如<code>b = c; b = 15;</code></li> |
|
</ul> |
|
|
|
</div> |
|
<div class="post-copyright"> |
|
<p class="copyright-item"> |
|
<span>Author: </span> |
|
<a href="https://iotcat.me/" target="_blank" rel="noopener">IoTcat</a> |
|
</p> |
|
<p class="copyright-item"> |
|
<span>Link: </span> |
|
<a href="https://www.eee.dog/tech/my-code-style.html">https://www.eee.dog/tech/my-code-style.html</a> |
|
</p> |
|
<p class="copyright-item"> |
|
<span>License: </span><a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/" target="_blank">知识共享署名-非商业性使用 4.0 国际许可协议</a> |
|
</p> |
|
</div> |
|
<footer class="post-footer"> |
|
<div class="post-tags"> |
|
<a href="/tags/cpp/">cpp</a> |
|
</div> |
|
|
|
<nav class="post-nav"><a class="prev" href="/notes/electromagnetism.html"> |
|
<i class="iconfont icon-left"></i> |
|
<span class="prev-text nav-default">工程电磁学</span> |
|
<span class="prev-text nav-mobile">Prev</span> |
|
</a> |
|
<a class="next" href="/tech/centos7-auto-install-typecho.html"> |
|
<span class="next-text nav-default">Centos7脚本一键安装Typecho</span> |
|
<span class="prev-text nav-mobile">Next</span> |
|
<i class="iconfont icon-right"></i> |
|
</a> |
|
</nav></footer> |
|
</article><script>$(()=>{setTimeout(()=>{iziToast.show({ |
|
title: 'tips', |
|
position: 'topRight', |
|
message: "此文章预计阅读 6 分钟哦~" |
|
})}, 3000)})</script> |
|
</div><div class="comments" id="comments"><div id="vcomments"></div> |
|
</div></div> |
|
</main> |
|
|
|
<footer id="footer" class="footer"> |
|
<script> |
|
page_obj = { |
|
layout: "post", |
|
comments: "true" |
|
}; |
|
</script><div class="social-links"><a href="mailto:i@iotcat.me" class="iconfont icon-email" title="email"></a> |
|
<a href="https://github.com/iotcat" target="_blank" rel="noopener" class="iconfont icon-github" title="github"></a> |
|
<a href="/atom.xml" class="iconfont icon-rss" title="rss"></a> |
|
</div><div class="copyright"><span id="/tech/my-code-style.html" class="statistic leancloud_visitors"> |
|
<em>Visitors </em> <i class="leancloud-visitors-count">??</i> |
|
<span class="division"> |</span> |
|
<em>Reading </em> 6 min |
|
</span> |
|
<br> |
|
<span class="power-by"> |
|
Powered by <a class="hexo-link" href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a> |
|
</span> |
|
<span class="division">|</span> |
|
<span class="theme-info"> |
|
Theme - |
|
<a class="theme-link" href="https://github.com/iotcat/kayo" target="_blank" rel="noopener">Kayo</a> |
|
</span> |
|
|
|
<span class="copyright-year">©2018 - 2020<span class="heart shaky"> |
|
<i class="iconfont icon-heart"></i> |
|
</span> |
|
<span class="author">IoTcat</span> |
|
</span> |
|
</div> |
|
</footer> |
|
|
|
<div class="back-to-top" id="back-to-top"> |
|
<i class="iconfont icon-up"></i> |
|
</div> |
|
</div> |
|
<script src="https://cdn.yimian.xyz/kayo/lib/valine/valine.min.js" data-pjax></script> |
|
<style> |
|
/* 背景图片 */ |
|
#veditor { |
|
background-image: url(https://cdn.jsdelivr.net/gh/drew233/cdn/20200409110727.webp); |
|
background-size: contain; |
|
background-repeat: no-repeat; |
|
background-position: right; |
|
background-color: rgba(255, 255, 255, 0); |
|
resize: vertical |
|
} |
|
|
|
/* 头像旋转 */ |
|
img.vimg { |
|
transition: all 1s /* 旋转时间为 1s */ |
|
} |
|
img.vimg:hover { |
|
transform: rotate(360deg); |
|
-webkit-transform: rotate(360deg); |
|
-moz-transform: rotate(360deg); |
|
-o-transform: rotate(360deg); |
|
-ms-transform: rotate(360deg); |
|
} |
|
|
|
|
|
/* 盒子模式 */ |
|
#vcomments .vcards .vcard { |
|
padding: 15px 20px 0 20px; |
|
border-radius: 10px; |
|
margin-bottom: 15px; |
|
box-shadow: 0 0 4px 1px rgba(0, 0, 0, .12); |
|
transition: all .3s |
|
} |
|
|
|
#vcomments .vcards .vcard:hover { |
|
box-shadow: 0 0 8px 3px rgba(0, 0, 0, .12) |
|
} |
|
|
|
#vcomments .vcards .vcard .vh .vcard { |
|
border: none; |
|
box-shadow: none; |
|
} |
|
|
|
|
|
</style> |
|
<script> |
|
pjax_valine = () => { |
|
new Valine({ |
|
el: '#vcomments', |
|
appId: 'eVzpK7EyT6OafJvXWIRminWT-gzGzoHsz', |
|
appKey: '2qjuEBgVE0BscTQnTmoS9roU', |
|
master: '9b616ff4cd6c305e5970bee7b1bd9b1f', //博主邮箱md5 |
|
tagMeta: ["博主","小伙伴","访客"], //标识字段名 |
|
friends: ["b6ddef7c7e1c647e7767afeacdfb7b64","46dd4e6fef4f9591736c4723a965ca2e","6132d77f9f0ae060bc733090991acecb","3e00e104b79d7c6e866c6b23c6ba6dfc"], //小伙伴邮箱Md5 |
|
metaPlaceholder: {"nick":"昵称/QQ号","mail":"邮箱(完全保密)"}, |
|
placeholder: "填写邮箱可以及时收到回复哦(●'◡'●)", |
|
path: window.location.pathname, |
|
enableQQ: true, |
|
visitor: true, |
|
emojiCDN: '//i0.hdslb.com/bfs/emote/', |
|
emojiMaps: { |
|
"tv_doge": "6ea59c827c414b4a2955fe79e0f6fd3dcd515e24.png", |
|
"tv_亲亲": "a8111ad55953ef5e3be3327ef94eb4a39d535d06.png", |
|
"tv_偷笑": "bb690d4107620f1c15cff29509db529a73aee261.png", |
|
"tv_再见": "180129b8ea851044ce71caf55cc8ce44bd4a4fc8.png", |
|
"tv_冷漠": "b9cbc755c2b3ee43be07ca13de84e5b699a3f101.png", |
|
"tv_发怒": "34ba3cd204d5b05fec70ce08fa9fa0dd612409ff.png", |
|
"tv_发财": "34db290afd2963723c6eb3c4560667db7253a21a.png", |
|
"tv_可爱": "9e55fd9b500ac4b96613539f1ce2f9499e314ed9.png", |
|
"tv_吐血": "09dd16a7aa59b77baa1155d47484409624470c77.png", |
|
"tv_呆": "fe1179ebaa191569b0d31cecafe7a2cd1c951c9d.png", |
|
"tv_呕吐": "9f996894a39e282ccf5e66856af49483f81870f3.png", |
|
"tv_困": "241ee304e44c0af029adceb294399391e4737ef2.png", |
|
"tv_坏笑": "1f0b87f731a671079842116e0991c91c2c88645a.png", |
|
"tv_大佬": "093c1e2c490161aca397afc45573c877cdead616.png", |
|
"tv_大哭": "23269aeb35f99daee28dda129676f6e9ea87934f.png", |
|
"tv_委屈": "d04dba7b5465779e9755d2ab6f0a897b9b33bb77.png", |
|
"tv_害羞": "a37683fb5642fa3ddfc7f4e5525fd13e42a2bdb1.png", |
|
"tv_尴尬": "7cfa62dafc59798a3d3fb262d421eeeff166cfa4.png", |
|
"tv_微笑": "70dc5c7b56f93eb61bddba11e28fb1d18fddcd4c.png", |
|
"tv_思考": "90cf159733e558137ed20aa04d09964436f618a1.png", |
|
"tv_惊吓": "0d15c7e2ee58e935adc6a7193ee042388adc22af.png", |
|
"tv_打脸": "56ab10b624063e966bfcb76ea5dc4794d87dfd47.png", |
|
"tv_抓狂": "fe31c08edad661d63762b04e17b8d5ae3c71a757.png", |
|
"tv_抠鼻": "c666f55e88d471e51bbd9fab9bb308110824a6eb.png", |
|
"tv_斜眼笑": "911f987aa8bc1bee12d52aafe62bc41ef4474e6c.png", |
|
"tv_无奈": "ea8ed89ee9878f2fece2dda0ea8a5dbfe21b5751.png", |
|
"tv_晕": "5443c22b4d07fb1907ccc610c8e6db254f2461b7.png", |
|
"tv_流汗": "cead1c351ab8d79e9f369605beb90148db0fbed3.png", |
|
"tv_流泪": "7e71cde7858f0cd50d74b0264aa26db612a8a167.png", |
|
"tv_流鼻血": "c32d39db2737f89b904ca32700d140a9241b0767.png", |
|
"tv_点赞": "f85c354995bd99e28fc76c869bfe42ba6438eff4.png", |
|
"tv_生气": "26702dcafdab5e8225b43ffd23c94ac1ff932654.png", |
|
"tv_生病": "8b0ec90e6b86771092a498c54f09fc94621c1900.png", |
|
"tv_疑问": "0793d949b18d7be716078349c202c15ff166f314.png", |
|
"tv_白眼": "c1d59f439e379ee50eef488bcb5e5378e5044ea4.png", |
|
"tv_皱眉": "72ccad6679fea0d14cce648b4d818e09b8ffea2d.png", |
|
"tv_目瞪口呆": "0b8cb81a68de5d5365212c99375e7ace3e7891b7.png", |
|
"tv_睡着": "8b196675b53af58264f383c50ad0945048290b33.png", |
|
"tv_笑哭": "1abc628f6d4f4caf9d0e7800878f4697abbc8273.png", |
|
"tv_腼腆": "89712c0d4af73e67f89e35cbc518420380a7f6f4.png", |
|
"tv_色": "61822c7e9aae5da76475e7892534545336b23a6f.png", |
|
"tv_调侃": "4bc022533ef31544ca0d72c12c808cf4a1cce3e3.png", |
|
"tv_调皮": "b9c41de8e82dd7a8515ae5e3cb63e898bf245186.png", |
|
"tv_鄙视": "6e72339f346a692a495b123174b49e4e8e781303.png", |
|
"tv_闭嘴": "c9e990da7f6e93975e25fd8b70e2e290aa4086ef.png", |
|
"tv_难过": "87f46748d3f142ebc6586ff58860d0e2fc8263ba.png", |
|
"tv_馋": "fc7e829b845c43c623c8b490ee3602b7f0e76a31.png", |
|
"tv_鬼脸": "0ffbbddf8a94d124ca2f54b360bbc04feb6bbfea.png", |
|
"tv_黑人问号": "45821a01f51bc867da9edbaa2e070410819a95b2.png", |
|
"tv_鼓掌": "1d21793f96ef4e6f48b23e53e3b9e42da833a0f6.png" |
|
// ... 更多表情 |
|
} |
|
}); |
|
}; |
|
</script><script type="text/javascript" src="https://cdn.yimian.xyz/ushio-js/ushio-footer.min.js"></script> |
|
<script> |
|
session.onload(function(){ |
|
if(session.get('group') != 'anonymous'){ |
|
function insertNick(){ |
|
if($('.vnick').length){ |
|
$('.vnick').val(session.get('nickname')); |
|
}else{ |
|
setTimeout(insertNick, 500); |
|
} |
|
} |
|
function insertMail(){ |
|
if($('.vmail').length){ |
|
$('.vmail').val(session.get('email')); |
|
}else{ |
|
setTimeout(insertMail, 500); |
|
} |
|
} |
|
|
|
if(session.get('nickname')){ |
|
insertNick(); |
|
} |
|
|
|
if(session.get('email')){ |
|
insertMail(); |
|
} |
|
} |
|
}); |
|
</script> |
|
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/slideout/slideout.js"></script> |
|
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/fancybox/jquery.fancybox.pack.js"></script> |
|
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/iziToast/iziToast.min.js"></script> |
|
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/iziModal/iziModal.min.js"></script> |
|
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/mermaid/mermaid.min.js"></script> |
|
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/js/src/kayo.js?v=1.0.0" data-pjax></script> |
|
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/js/src/kayo-no-pjax.js?v=1.0.0"></script> |
|
<script src="https://cdn.yimian.xyz/kayo/lib/pjax/pjax.min.js"></script> |
|
<script>window.pjax = new Pjax({ |
|
elements: 'a[href]:not([href^="#"]):not([href="javascript:void(0)"])', |
|
selectors: ["head title, #main", "#footer"], |
|
});/* 第一次载入页面加载的函数 */ |
|
pjax_ini = () => { |
|
|
|
/* 关闭侧边栏 */ |
|
window.slideout.close(); |
|
|
|
if(page_obj.comments == "true"){pjax_valine();}pjax_google_analytics();mermaid.init(undefined, $(".mermaid"));}; |
|
|
|
/* 第一次 执行 */ |
|
pjax_ini();var loadingBar = document.querySelector(".loading-bar"); |
|
var progress = document.querySelector(".loading-bar .progress"); |
|
var timer = null; |
|
|
|
|
|
// Pjax 开始时执行的函数 |
|
var loadingbarStart = function () { |
|
// 进度条默认已经加载 20% |
|
var loadingBarWidth = 20; |
|
// 进度条的最大增加宽度 |
|
var MAX_LOADING_WIDTH = 95; |
|
|
|
// 显示进度条 |
|
loadingBar.classList.add("loading"); |
|
// 初始化进度条的宽度 |
|
progress.style.width = loadingBarWidth + "%"; |
|
|
|
clearInterval(timer); |
|
timer = setInterval(function () { |
|
// 进度条的增加速度(可以改为一个随机值,显得更加真实) |
|
loadingBarWidth += 3; |
|
|
|
// 当进度条到达 95% 后停止增加 |
|
if (loadingBarWidth > MAX_LOADING_WIDTH) { |
|
loadingBarWidth = MAX_LOADING_WIDTH; |
|
} |
|
|
|
progress.style.width = loadingBarWidth + "%"; |
|
}, 500); |
|
}; |
|
|
|
|
|
// Pjax 完成之后执行的函数 |
|
var loadingbarStop = function () { |
|
clearInterval(timer); |
|
progress.style.width = "100%"; |
|
loadingBar.classList.remove("loading"); |
|
|
|
setTimeout(function () { |
|
progress.style.width = 0; |
|
}, 400); |
|
};/* Pjax 开始时,重新加载的函数 */ |
|
document.addEventListener("pjax:send", function () {loadingbarStart(); |
|
}); |
|
|
|
|
|
/* Pjax 完成后,重新加载的函数 */ |
|
document.addEventListener("pjax:complete", function () { |
|
/* 重载带data-pjax的script,或者.pjax-reload属性内容的script */ |
|
$("script[data-pjax], .pjax-reload script").each(function () { |
|
$(this).parent().append($(this).remove()); |
|
}); |
|
pjax_ini();loadingbarStop(); |
|
}); |
|
|
|
|
|
/* Pjax 出错,执行的函数 */ |
|
document.addEventListener("pjax:error", function () { |
|
|
|
});</script> |
|
</body> |
|
</html>
|
|
|