Com es corregeix l'error "Formats de punt flotant no enllaçats" a Turbo C / Borland C

Autora: Janice Evans
Data De La Creació: 1 Juliol 2021
Data D’Actualització: 12 Ser Possible 2024
Anonim
Com es corregeix l'error "Formats de punt flotant no enllaçats" a Turbo C / Borland C - Coneixements
Com es corregeix l'error "Formats de punt flotant no enllaçats" a Turbo C / Borland C - Coneixements

Content

Altres seccions

Alguna vegada us heu trobat amb "formats de coma flotant no enllaçats" error en un programa C o C ++? A continuació s’explica el motiu d’aquest error i també la solució. Tingueu en compte que el compilador utilitzat és Turbo C / Borland C.

Passos

Analitzeu el llistat de programes següent i, després de crear amb èxit el programa, apareix l'error de temps d'execució esmentat anteriorment.

Programa primer

  1. Llista d'un programa a continuació.
    • int main () {
      struct ALUMNE {
      int rollno;
      char stdname;
      percentatge de flotació;
      } * s1;
      printf (" Introduïu dades de l'estudiant:");
      scanf ("% d% s% f",
      & s1-> rollno,
      s1-> nom std,
      & s1-> percentatge);
      printf (" nLes dades introduïdes són:");
      printf ("Roll:% d, nom:% s, percentatge:% f",
      s1-> rollno,
      s1-> nom std,
      s1-> percentatge);
      getch ();
      retorn 0;
      }
    • El programa C anterior s’escriu i es compila en Turbo C. Quan s’executa aquest programa, el compilador mostra el següent error,
      Scanf: formats de punt flotant no enllaçats i el programa es finalitza de manera anormal.
    • Això passa a causa de la variable * s1, que és un indicador de l'estructura "STUDENT", en què el programador havia definit una variable "float" anomenada "percentatge". Significa que s'ha trobat un error quan el programa va intentar llegir un valor per al tipus de dades flotant mitjançant un punter per estructurar. Quan s'executa el programa, el compilador va mostrar un error en temps d'execució a la línia scanf ("% f", ...% s1-> percentatge).
    • Pot passar quan utilitzem Borland C / C ++ o TurboC / C ++ com a compilador. "Els formats de coma flotant no estan enllaçats" és un error d'execució de Borland (Borland C o C ++, Turbo C o C ++). Els compiladors de Borland no s’enllacen a la biblioteca de punt flotant (f-p) tret que ho necessitem. Per tant, per força hem d'afegir qualsevol funció de coma flotant (f-p) quan tenim "% f" o altres formats de coma flotant (f-p) en les trucades scanf () o printf ().

  2. Per solucionar aquest error, truqueu a una funció de coma flotant (f-p) o simplement afegiu un enllaç d’un fitxer, que conté almenys una funció de coma flotant (f-p). Per fer-ho, una solució complicada podria ser definir una funció fictícia en algun lloc del fitxer font, però no la crideu:
    • maniquí buit (flotador * a) {
      flotador b = * a; // realitzar algun accés flotant
      maniquí (& b); // cridant una funció de coma flotant
      }
    • No ha de ser en un mòdul amb el programa principal, sempre que estigui en un mòdul que s’inclourà a l’enllaç. Per tant, el programa anterior s’ha d’escriure de la següent manera:

Llistat dos del programa


  1. Programa que enumera dos a continuació.
    • maniquí buit (float * a) {
      flotador b = * a; // realitzar algun accés flotant
      maniquí (& b); // cridant una funció de coma flotant
      }
      int main () {
      struct ALUMNE {
      int rollno;
      char stdname;
      percentatge de flotació;
      } * s1;
      printf (" Introduïu dades de l'estudiant:");
      scanf ("% d% s% f",
      & s1-> rollno,
      s1-> nom std,
      s1-> percentatge);
      printf (" nLes dades introduïdes són:");
      printf ("Roll:% d, nom:% s, percentatge:% f",
      s1-> rollno,
      s1-> nom std,
      s1-> percentatge)
      getch ();
      retorn 0;
      }
    • Al programa anterior, "dummy" és una funció definida per l'usuari. Podeu posar qualsevol nom a aquesta funció en lloc de "fictici". De la mateixa manera, "a" i "b" són noms de variables, que podeu canviar.
    • Això es deu al fet que els compiladors C / C ++ de Turbo i Borland de vegades deixen de banda el suport de punt flotant i utilitzen la versió en punt flotant de printf i scanf per estalviar espai en sistemes més petits. La trucada fictícia a una funció de coma flotant obligarà el compilador a carregar el suport de coma flotant i resoldre el problema original.

  2. Una opció més neta és habilitar l’enllaç de biblioteca de punt flotant en Turbo C / C ++ o Borland C / C ++ des de les opcions d’enllaç per a que la biblioteca inclogui el punt flotant.

Preguntes i respostes de la comunitat


Consells

Com fer que algú se senti culpable

Bobbie Johnson

Ser Possible 2024

Fer que algú e enti culpable pot er una bona manera d’obtenir di culpe o qual evol co a que vulgueu. Tot i això, també é po ible que l’altra per ona u re enti per xantatge emociona...

Com es calcula un percentatge a Java

Bobbie Johnson

Ser Possible 2024

aber calcular percentatge pot er de gran ajuda. Però quan le xifre augmenten, l'ú d'un programa per fer aque t càlcul é molt mé fàcil. Vegeu com podeu crear un p...

Llegiu Avui