为了让AI更智能,我决定把我的码风与语言风格用文字表达……

1.代码风格:
1.1.缩进:
1.1.1.正常使用4个空格缩进
1.1.2.在for循环中,for循环的括号和"for"与大括号之间存在一个空格
1.1.3.在if判断中,if判断的括号和"if"与大括号之间存在一个空格
1.1.4.在while循环中,while循环的括号和"while"与大括号之间存在一个空格
1.1.5.在do-while循环中,do-while循环的括号和"do"与大括号之间存在一个空格,“while"与大括号之间不存在空格
1.1.6.在switch判断中,switch判断的括号和"switch"与大括号之间存在一个空格,case与switch存在4个空格的缩进
1.1.7.在函数定义中函数定义的括号和函数名之间存在一个空格(包括main主函数)
1.1.8.在类定义中类定义的括号和类名之间存在一个空格
1.1.9.在结构体定义中结构体定义的括号和结构体名之间存在一个空格
1.1.10.在枚举定义中枚举定义的括号和枚举名之间存在一个空格
1.2.压行:
1.2.1.在仅包括一个表达式的if判断中,不用大括号,写在一行内,并且括号与表达式之间存在一个空格,示例(在”" 与 ""之间的部分):

        if (a == b) {
            cout << "a == b\n";
        }
        转变为:
        if (a == b) cout << "a == b\n";

\,
1.2.2.在仅包括一个表达式的while循环中,不用大括号,写在一行内,并且括号与表达式之间存在一个空格,示例(在"```" 与 "```"之间的部分):

        while (a == b) {
            cout << "a == b\n";
        }
        转变为:
        while (a == b) cout << "a == b\n";

\,
1.2.3.在仅包括一个表达式的do-while循环中,不用大括号,写在一行内,并且括号与表达式之间存在一个空格,示例(在"```" 与 "```"之间的部分):

        do {
            cout << "a == b\n";   
        }
        while (a == b);
        转变为:
        do cout << "a == b\n"; while (a == b);

\,
1.2.4.在仅包括一个表达式的switch判断中,不用大括号,写在一行内,并且括号与表达式之间存在一个空格,示例(在"```" 与 "```"之间的部分):

        switch (a) {
            case 1:
                cout << "a == 1\n";
                break; 
        }
        转变为:
        switch (a) {
            case 1: cout << "a == 1\n"; break;
        }

\,
(如果case后面的语句只有一行,则可以不写大括号,但是如果case后面的语句有多行,则必须写大括号)
1.2.5.在仅包括一个表达式的for循环中,不用大括号,写在一行内,并且括号与表达式之间存在一个空格,示例(在"" 与 ""之间的部分):

        for (int i = 0;i <= n;i++) {
            cout << i << endl;
        }   
        转变为:    
        for (int i = 0;i <= n;i++) cout << i << endl;
    1.2.6.可以合并的语句使用逗号表达式合并到同一行
    1.2.7.为了方便阅读,每行出去for循环以外最多只能有一个分号

\,
1.3.命名规则:
1.3.1.变量名:
1.3.1.1变量名尽量使用英文,尽量不使用拼音
1.3.2.2变量名尽量使用有意义的单词
1.3.3.3变量名尽量使用小写字母
1.3.4.4变量名尽量使用下划线分隔
1.3.2.函数名:
1.3.2.1.函数名尽量使用英文,尽量不使用拼音
1.3.2.函数名尽量使用有意义的单词
1.3.2.3.函数名尽量使用小写字母
1.3.2.4.函数名尽量使用下划线分隔
1.3.3.类名:
1.3.3.1.类名尽量使用英文,尽量不使用拼音
1.3.3.2.类名尽量使用有意义的单词
1.3.3.3.类名尽量使用小写字母
1.3.3.4.类名尽量使用下划线分隔
1.3.4.结构体名:
1.3.4.1.结构体名尽量使用英文,尽量不使用拼音
1.3.4.2.结构体名尽量使用有意义的单词
1.3.4.3.结构体名尽量使用小写字母
1.3.4.4.结构体名尽量使用下划线分隔
1.3.5.枚举名:
1.3.5.1.枚举名尽量使用英文,尽量不使用拼音
1.3.5.2.枚举名尽量使用有意义的单词
1.3.5.3.枚举名尽量使用小写字母
1.3.5.4.枚举名尽量使用下划线分隔
1.3.6.常量名:
1.3.6.1.常量名尽量使用英文,尽量不使用拼音
1.3.6.2.常量名尽量使用有意义的单词
1.3.6.3.常量名尽量使用大写字母
1.3.6.4.常量名尽量使用下划线分隔
1.3.7.宏定义名:
1.3.7.1.宏定义名尽量使用英文,尽量不使用拼音
1.3.7.2.宏定义名尽量使用有意义的单词
1.3.7.3.宏定义名尽量使用大写字母
1.3.7.4.宏定义名尽量使用下划线分隔
1.3.8.函数参数名:
1.3.8.1.函数参数名尽量使用英文,尽量不使用拼音
1.3.8.2.函数参数名尽量使用有意义的单词
1.3.8.3.函数参数名尽量使用小写字母
1.3.8.4.函数参数名尽量使用下划线分隔
1.3.9.函数返回值名:
1.3.9.1.函数返回值名尽量使用英文,尽量不使用拼音
1.3.9.2.函数返回值名尽量使用有意义的单词
1.3.9.3.函数返回值名尽量使用小写字母
1.3.9.4.函数返回值名尽量使用下划线分隔
1.4.代码细节:
1.4.1.在cout输出中,末尾的换行尽量使用endl,其他部分尽量使用’\n’,可以合并的尽量合并,示例:

        cout << 1 << endl << ans << '\n';
        转变为:
        cout << "1\n" << ans << endl;

\,
1.4.2.大范围使用long long变量类型时,使用define ll long long,并按以前规则压行处理,示例:

        long long a = 1;
        long long b =1;
        转变为:        
        #define ll long long
        ll a =1,b =1; 

\,
1.4.3.尽量使用c++的输入输出流,如果可能超时,不要使用scanf和printf,而是使用关闭同步流,并且使用define close std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0),并将close放在main函数的第一行,示例:

        #include <bits/stdc++.h>
        #define close std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
        using namespace std;
        int main() {
            close;
            int a,b;
            cin >> a >> b;
        }

\,
1.4.4.如果存在输入输出字符串,那么不要使用关闭同步流,使用scanf和printf输入常规变量,用cin和cout输入字符串,示例:

        #include <bits/stdc++.h>
        using namespace std;    
        int main() {
            int a,b;
            char c;
            string s;   
            scanf("%d%d %c",&a,&b,&c);  
            cin >> s;   
            printf("%d%d %c\n",a,b,c);  
            cout << s << endl;
        }

\,
1.4.5.变量刚定义时赋初值,格式是a =1,而不是a=1,示例:

        int a = 1;
        int b = 1;  
        转变为:
        int a =1,b =1;
        ```
        1.4.5.变量后来赋值时,格式是`a = 1`,而不是`a =1`,示例:
        ```cpp
        int a = 1;
        int b = 1;  
        a = 2;  
        b = 2;
        转变为:
        int a =1,b =1;
        a = 2,b = 2;

\,
1.4.6.如果存在多个变量的赋值,那么可以使用逗号表达式合并到同一行,示例:

        int a = 1,b = 1;
        int c = 1,d = 1;    
        转变为:
        int a =1,b =1,c =1,d =1;

\,
1.4.7.所有以#开头的语句最好放在using namespace std;命名空间的前面
1.4.8.所有的函数定义最好放在main函数的前面
1.4.9.所有的类定义最好放在main函数的前面
1.4.10.所有的结构体定义最好放在main函数的前面
1.4.11.所有的枚举定义最好放在main函数的前面
1.4.12.所有的常量定义最好放在main函数的前面(使用全局变量)
1.4.13.所有的宏定义最好放在main函数的前面
1.4.14.所有的函数参数定义最好放在main函数的前面
1.4.15.能使用class的尽量使用class,不能使用class的尽量使用struct
2.回复制约:
2.1.所有的符号使用看前面的字符是中文还是字符(1~9算字符),中文用中文,英文用英文,括号等可以不考虑是否匹配,示例:
所以1 +1 =2,可一加一等于二。
3.码风示例:

#include <bits/stdc++.h>
using namespace std;

string s;

void print() {
    for (int i =0;i <= s.size();i++) {
        cout << s[i];
    }
}

int main() {
    cin >> s;
    print();
    return 0;
}
1 个赞

写死我了,写了半个小时,好在AI非常快的理解了这些文字,并用我的码风写了一篇代码。

1 个赞

满级