| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1418 人关注过本帖
标题:关于注释问题
只看楼主 加入收藏
奇数层
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2022-8-20
结帖率:66.67%
收藏
已结贴  问题点数:15 回复次数:9 
关于注释问题
图片附件: 游客没有浏览图片的权限,请 登录注册

为什么一添加注释就报警告?
怎么解决呢?
搜索更多相关主题的帖子: 添加 报警 注释 
2022-09-25 10:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:15 
把注释删光,然后看看编译能通过不?
将注释用“手打”一个一个字符的敲上去,看看编译能通过不?
如果能编译通过,说明你拷贝的注释里面含有 GB2312 之外的编码;如果依然不能编译通过,把你的xx.c以文件形式发上来让大家看看。
2022-09-25 13:20
奇数层
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2022-8-20
收藏
得分:0 
回复 2楼 rjsp
注释删光可以通过没警告
2022-09-25 22:30
奇数层
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2022-8-20
收藏
得分:0 
回复 2楼 rjsp
struct stu
{
    char name[30];
    int rank;
};

int comp_int(const void* e1, const void* e2)
{
    return *(int*)e1 - *(int*)e2;
}

int comp_float(const void*e1, const void*e2)
{
   
    if (*(float*)e1 == *(float*)e2)
        return 0;
    else if (*(float*)e1 > *(float*)e2)
        return 1;
    else
        return -1;
}

int comp_struct_by_rank(const void*e1, const void*e2)
{
    return ((struct stu*)e1)->rank - ((struct stu*)e2)->rank;
}

int comp_struct_by_name(const void*e1, const void*e2)
{
    return strcmp(((struct stu*)e1)->name, ((struct stu*)e2)->name);
}


void exchange(char*e1, char* e2,int width)
{
    char tem;
    for (int i = 0; i < width; i++)
    {
        tem = *e1;
        *e1 = *e2;
        *e2 = tem;
        e1++;
        e2++;
    }
   
}

void bubble(void* arr, int num, int width,int(*comp)(const void*e1,const void*e2))
{
    int i = 0;
    int j = 0;
   
    for(i = 0; i < num - 1; i++)
    {
        
        for (j = 0; j < num - 1 - i; j++)
        {
            if (comp(      (char*)arr + (width * j), (char*)arr + (width * (j + 1))       ) > 0)
            {
               
                exchange((char*)arr + width * j, (char*)arr + width * (j + 1), width);
            }

        }
    }
}





void text1_int()
{
    int arr[10] = { 2,6,4,8,7,9,5,1,3,0 };
    int num = sizeof(arr) / sizeof(arr[0]);
    qsort(arr, num, sizeof(arr[0]), comp_int);
    for (int i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
}

void text2_float()
{
    float arr1[10] = { 2.6f,6.3f,4.5f,8.4f,7.9f,9.5f,5.3f,1.4f,3.7f,0.8f };
    int num = sizeof(arr1) / sizeof(arr1[0]);
    qsort(arr1, num,sizeof(arr1[0]), comp_float);
    for (int i = 0; i < 10; i++)
    {
        printf("%f ", arr1[i]);
    }
}

void text3_struct_rank()
{
    struct stu arr3[6] = { {"һ",6} ,{"һһ",4},{"һһһ",3}, {"һһһһ",7},{"һһһһһ",5} ,{"һһһһһһ",8} };
    int num = sizeof(arr3) / sizeof(arr3[0]);
    qsort(arr3, num, sizeof(arr3[0]), comp_struct_by_rank);
    for (int i = 0; i < 6; i++)
    {
        printf("%d ", arr3[i].rank);
    }
}

void text4_struct_name()
{
    struct stu arr3[6] = { {"asd",6} ,{"fgh",4},{"jkl",3}, {"zxc",7},{"vbn",5} ,{"qwe",8} };
    int num = sizeof(arr3) / sizeof(arr3[0]);
    qsort(arr3, num, sizeof(arr3[0]), comp_struct_by_name);
    for (int i = 0; i < 6; i++)
    {
        printf("%s ", arr3[i].name);
    }
   

}

void text5_bubble_int()
{
    int arr[10] = { 2,6,4,8,7,9,5,1,3,0 };
    int num = sizeof(arr) / sizeof(arr[0]);
    bubble(arr, num, sizeof(arr[0]), comp_int);
    for (int i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
}



int main()
{
   
    text1_int();
    printf("\n");
    text2_float();
    printf("\n");
    text3_struct_rank();
    printf("\n");
    text4_struct_name();
    printf("\n");

    text5_bubble_int();
    /*bubble*/
   
   
    return 0;
}
2022-09-25 22:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:0 
回复 4楼 奇数层
我说的是“把你的xx.c以文件形式发上来”,不是让你把xx.c的内容贴上来。你拷贝粘贴文件内容时就可能把不合格的字符给滤掉了。

从你贴的内容来看,比如 "һ" 中的 'һ'(对应unicode编码\u04BB) 就不是一个 GB2312 能表达的字符,我猜你想写的应该是 "h"(GB2312编码 0x68)

我帮你把代码中的错误改掉了一些
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct stu
{
    char name[30];
    int rank;
};

int comp_int(const void* e1, const void* e2)
{
    //return *(int*)e1 - *(int*)e2; 错误:可能会溢出
    if( *(int*)e1 < *(int*)e2 ) return -1;
    if( *(int*)e1 > *(int*)e2 ) return +1;
    return 0;
}

int comp_float(const void* e1, const void* e2)
{
    // 错误:非规格化数,既不小于,也不大于,更不等于
    //if (*(float*)e1 == *(float*)e2)
    //    return 0;
    //else if (*(float*)e1 > *(float*)e2)
    //    return 1;
    //else
    //    return -1;
    if( *(float*)e1 < *(float*)e2 ) return -1;
    if( *(float*)e1 > *(float*)e2 ) return +1;
    return 0;
}

int comp_struct_by_rank(const void* e1, const void* e2)
{
    // return ((struct stu*)e1)->rank - ((struct stu*)e2)->rank; 错误:可能会溢出
    return comp_int( &(*(struct stu*)e1).rank, &(*(struct stu*)e2).rank );
}

int comp_struct_by_name(const void* e1, const void* e2)
{
    return strcmp( ((struct stu*)e1)->name, ((struct stu*)e2)->name );
}

void exchange( char* e1, char* e2, size_t width ) // size_t
{
    for( size_t i=0; i!=width; ++i )
    {
        char temp = e1[i];
        e1[i] = e2[i];
        e2[i] = temp;
    }
}

void bubble( void* arr, size_t num, size_t width, int (*comp)(const void* e1,const void* e2) ) // size_t
{
    for( size_t i=0; i+1<num; ++i )
    {
        for( size_t j=0; j+1+i<num; ++j )
        {
            if( comp( (char*)arr + j*width, (char*)arr + (j+1)*width ) > 0 )
            {
                exchange( (char*)arr + j*width, (char*)arr + (j+1)*width, width );
            }
        }
    }
}

void text1_int( void )
{
    int arr[10] = { 2,6,4,8,7,9,5,1,3,0 };
    size_t num = sizeof(arr) / sizeof(arr[0]);
    qsort( arr, num, sizeof(arr[0]), comp_int );
    for( size_t i=0; i!=num; ++i )
        printf( "%d%c", arr[i], " \n"[i+1==num] );
}

void text2_float( void )
{
    float arr[10] = { 2.6f,6.3f,4.5f,8.4f,7.9f,9.5f,5.3f,1.4f,3.7f,0.8f };
    size_t num = sizeof(arr) / sizeof(arr[0]);
    qsort( arr, num, sizeof(arr[0]), comp_float );
    for( size_t i=0; i!=num; ++i )
        printf( "%f%c", arr[i], " \n"[i+1==num] );
}

void text3_struct_rank( void )
{
    struct stu arr[6] = { {"h",6} ,{"hh",4},{"hhh",3}, {"hhhh",7},{"hhhhh",5} ,{"hhhhhh",8} };
    size_t num = sizeof(arr) / sizeof(arr[0]);
    qsort( arr, num, sizeof(arr[0]), comp_struct_by_rank );
    for( size_t i=0; i!=num; ++i )
        printf( "%d%c", arr[i].rank, " \n"[i+1==num] );
}

void text4_struct_name( void )
{
    struct stu arr[6] = { {"asd",6} ,{"fgh",4},{"jkl",3}, {"zxc",7},{"vbn",5} ,{"qwe",8} };
    size_t num = sizeof(arr) / sizeof(arr[0]);
    qsort( arr, num, sizeof(arr[0]), comp_struct_by_name );
    for( size_t i=0; i!=num; ++i )
        printf("%s%c", arr[i].name, " \n"[i+1==num] );
}

void text5_bubble_int( void )
{
    int arr[10] = { 2,6,4,8,7,9,5,1,3,0 };
    size_t num = sizeof(arr) / sizeof(arr[0]);
    bubble( arr, num, sizeof(arr[0]), comp_int );
    for( size_t i=0; i!=num; ++i )
        printf( "%d%c", arr[i], " \n"[i+1==num] );
}

int main( void )
{
    text1_int();
    text2_float();
    text3_struct_rank();
    text4_struct_name();
    text5_bubble_int();
    /*bubble*/
}


[此贴子已经被作者于2022-9-26 11:11编辑过]

2022-09-26 10:52
奇数层
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2022-8-20
收藏
得分:0 
回复 5楼 rjsp
xx.c (2.78 KB)

呃呃,你帮我改的内容,我还暂时看不懂。。。。,不知道原因
2022-09-26 19:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:0 
回复 6楼 奇数层
你的
    text5_bubble_int();
    /*bubble*/
没有问题。

有问题的还是我之前说过的
struct stu arr3[6] = { {"һ",6} ,{"һһ",4},{"һһһ",3}, {"һһһһ",7},{"һһһһһ",5} ,{"һһһһһһ",8} };
里面的 һ 不是 h
2022-09-27 07:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:0 
以二进制方式打开你的 xx.c,里面有两个字节 --- D2 BB,它对应的字符是 utf8编码的'һ',没有GB2312对应的编码。
而 /*bubble*/ 是没问题的。

图片附件: 游客没有浏览图片的权限,请 登录注册
2022-09-27 08:12
mature119
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:29
专家分:45
注 册:2021-12-7
收藏
得分:0 
注释不会有问题,应该是附近有语法错误吧。
2022-09-27 21:40
奇数层
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2022-8-20
收藏
得分:0 
回复 8楼 rjsp
也就是这里的h不符合GB2312的存储方式?
之前这里我写的是一,一一,一一一等等,然后第二天编译了一下就变成h了。
2022-09-27 22:26
快速回复:关于注释问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044949 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved