出现这种情况怎么办呢

img


这样的情况编译没有错误但是运行没有结果求大家指点 这是因为什么 该怎么办呢

你不放代码,别人怎么猜你的代码到底哪里有问题呢
写代码要学会调试
写一点调一点,不要等写了成百上千行代码才发现根本没法运行
先把多余的函数调用全注释掉,一点一点运行,没问题了再解注释,运行后面的代码
看加到哪里就会报错,然后再逐行排查
一个函数里面的代码也可以这样调,把后面的注释掉,先执行前面的,看执行到哪里报错
你不嫌麻烦也可以直接断点一步一步调
断点调的时候,到底在哪里设置断点也是需要不断测试的,确认没问题了的地方就可以不设置断点,直接跳过去
在感觉有问题的地方设置断点按步调试

  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:使用函数模板时,出现没有与参数列表匹配的函数模板实例错误的解决方法
  • 除此之外, 这篇博客: 嵌入式系统运行的程序是如何编译出来的?中的 1 预处理阶段 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。那么,什么事伪指令呢?伪指令主要包括以下四个方面:(1)宏定义指令,如#define Demu 520,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Demu用520替换,但作为字符串常量的Demu则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等。这些条件编译指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉。(3)头文件包含指令,如#include “Filename"或者#include 等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。包含到c源程序中的头文件可以是系统提供的。在程序中#include它们要使用尖括号(<>)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号(”")。所以,你知道为什么include的头文件,尖括号和双引号都有了吧,当然这是规范用法,大家敲代码的时候最好也按照这个规范来。(4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。
    在这里插入图片描述

    预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出文件将作为编译程序的输出而被翻译成为机器指令。

  • 您还可以看一下 韦语洋(Lccee)老师的一机一码加密、被破解自动销毁随时授权回收升级系列视频课程课程中的 演示如何破解一个软件绕过注册机(仅作为后续课程的了解)小节, 巩固相关知识点