LabVIEW stocke des données en mémoire pour les commandes, les indicateurs, les fils de liaison et d'autres objets, en fonction du type de données de l'objet.

Données booléennes

LabVIEW enregistre les données booléennes sous forme de valeurs de 8 bits. Si la valeur est zéro, la valeur booléenne est FAUX. Toute valeur non nulle est VRAI.

Entier octet

Les nombres entiers octet sont au format 8 bits, signés ou non signés.

Entier mot

Les nombres entiers mot sont au format 16 bits, signés ou non signés.

Entier long

Les nombres entiers longs sont au format 32 bits, signés ou non signés.

Entier quad

Les nombres entiers quad sont au format 64 bits, signés ou non signés.

Virgule fixe

Les nombres à virgule fixe sont au format 64 bits, signés ou non signés. Les signes LabVIEW étendent les nombres à virgule fixe à 64 bits même quand les bits étendus ne sont pas significatifs.

Unique

Les nombres à virgule flottante simple précision sont au format simple précision IEEE 32 bits.

Double

Les nombres à virgule flottante double précision sont au format double précision IEEE 64 bits.

Étendue

Les nombres à virgule flottante précision étendue sont au format précision étendue IEEE 80 bits.

Remarque Dans certains cas, les nombres à virgule flottante précision étendue peuvent être au format de précision étendue IEEE 64, 96 et 128 bits, suivant le processeur de l'ordinateur. La plupart des processeurs Intel et AMD utilisent un format 80 bits.

Complexe simple précision

Les nombres complexes à virgule flottante simple précision sont constitués de valeurs réelles et imaginaires au format simple précision IEEE 32 bits.

Complexe double précision

Les nombres complexes à virgule flottante double précision sont constitués de valeurs réelles et imaginaires au format double précision IEEE 64 bits.

Complexe précision étendue

Les nombres complexes à virgule flottante précision étendue sont constitués de valeurs réelles et imaginaires au format précision étendue IEEE.

Pour les nombres à virgule flottante et les nombres complexes, s est le bit de signe (0 pour positif, 1 pour négatif), exp est l'exposant de la base (base 2) et la mantisse est un nombre dans la gamme [0,1].

Horodatage

LabVIEW stocke un horodatage sous la forme d'un cluster de deux nombres double précision. Le premier représente le nombre de secondes complètes, indépendamment du fuseau horaire, qui se sont écoulées depuis le vendredi 1er janvier 1904 à 00h00 (temps universel) [01-01-1904 00:00:00]. Le second représente les fractions de secondes.

Tableaux

LabVIEW enregistre les tableaux comme des handles, ou comme des pointeurs vers des pointeurs, qui contiennent la taille de chaque dimension du tableau en entiers 32 bits suivis des données. Si le handle est 0, le tableau est vide. À cause des contraintes d'alignement de certaines plates-formes, il se peut que quelques octets de remplissage suivent la taille de la dimension pour que le premier élément de données soit correctement aligné. Si vous écrivez une bibliothèque partagée qui utilise un tableau LabVIEW, vous devrez peut-être ajuster la taille du handle.

L'illustration suivante représente un tableau 1D de nombres simple précision à virgule flottante. Les nombres décimaux à gauche représentent les offsets d'octets des emplacements en mémoire où le tableau commence.

L'illustration suivante représente un tableau 4D d'entiers 16 bits.

Dans LabVIEW, les tableaux 1D et 2D sont alignés en mémoire. Ceci améliore les performances dans les opérations d'algèbre linéaire et les opérations qui impliquent le type de données matrice.

Chaînes

LabVIEW enregistre des chaînes en tant que pointeurs vers une structure qui contient une valeur de longueur de 4 octets suivie d'un tableau 1D d'entiers octets (caractères à 8 bits), comme décrit dans l'illustration suivante. Si le handle, le pointeur vers la structure, est NULL, LabVIEW traite la chaîne comme une chaîne vide, c'est-à-dire une chaîne dont la valeur de longueur est zéro. Comme LabVIEW utilise la valeur de longueur plutôt qu'un caractère de fin pour déterminer où se termine la chaîne, vous pouvez utiliser tous les caractères, y compris le caractère NULL et le caractère 0 ASCII, n'importe où dans la chaîne. Lorsque des chaînes LabVIEW sont envoyées à du code externe qui s'attend à une chaîne en C, le code considère que la chaîne se termine au premier caractère NULL intégré.

Chemins

Un chemin LabVIEW est un pointeur vers une structure de données opaque qui contient le type et les composants du chemin. Le type de chemin est 0 pour un chemin absolu, 1 pour un chemin relatif et 3 pour un chemin UNC (Universal Naming Convention). Les chemins UNC ne concernent que Windows ; leur premier composant est \\<nom de l'ordinateur>\<nom du partage>\ plutôt qu'une lettre de lecteur. Toute autre valeur de type de chemin indique un chemin non valide.

Utilisez les fonctions suivantes pour accéder aux informations relatives à un chemin :

  • FDepth()
  • FDirName()
  • FIsAPath()
  • FIsAPathOfType()
  • FIsEmptyPath()
  • FNamePtr()
  • FVolName()

Utilisez les fonctions suivantes pour ajouter des éléments à un chemin :

  • FAddPath()
  • FAppendName()

Utilisez les fonctions suivantes pour créer un nouveau chemin :

  • FNotAPath()
  • FPathCpy()
  • FEmptyPath()
  • FMakePath()
  • FRelPath()

Utilisez la fonction FDestroyPath() pour supprimer un chemin.

Utilisez les fonctions suivantes pour convertir un chemin en format texte et vice-versa :

  • FFileSystemStringToPath()
  • FPathToFileSystemDSString()
  • FPathToText()
  • FTextToPath()
  • ConvertPathToPlatformIndependentText()
  • ConvertPlatformIndependentTextToPath()

Utilisez les fonctions suivantes pour comparer deux chemins :

  • FPathCmp()
  • FPathCmpLexical()

Rubriques apparentées

Utilisation des fonctions du gestionnaire LabVIEW dans les bibliothèques partagées

Clusters

LabVIEW enregistre les éléments de cluster de différents types de données selon l'ordre du cluster. Vous pouvez afficher et modifier l'ordre des éléments d'un cluster en effectuant un clic droit sur le cadre du cluster et en sélectionnant Ordonner les commandes dans le cluster dans le menu local. LabVIEW enregistre directement les données scalaires dans le cluster et enregistre les tableaux, les chaînes et les chemins indirectement dans le cluster. En raison des contraintes d'alignement de certaines plates-formes, il est possible que LabVIEW ajoute des octets de remplissage à la fin d'un cluster dans un tableau, de façon à ce que le début du cluster suivant soit correctement aligné. Si vous écrivez une bibliothèque partagée qui utilise un tableau de clusters, vous pouvez tenir compte de ce remplissage en ajustant la taille du handle au tableau.

La disposition de la mémoire d'un cluster dépend de la plate-forme que vous utilisez. Il est possible que LabVIEW ajoute des octets de remplissage entre les éléments d'un cluster de manière à les aligner à certaines limites définies par des adresses. Une limite définie par une adresse se rapporte au concept d'alignement naturel. Un élément de données est aligné sur sa limite naturelle si l'adresse à laquelle il commence est un multiple de la taille de cet élément de données. Par exemple, un entier de 4 octets est naturellement aligné s'il commence à une adresse qui est un multiple de 4. La plupart des compilateurs ont une limite supérieure à laquelle cette restriction est relâchée. Par exemple, un entier de 8 octets peut être aligné sur une limite de 4 octets. Pour les plates-formes sur lesquelles LabVIEW s'exécute, les restrictions d'alignement sont les suivantes :

  • (Phar Lap ETS) Les données sont alignées sur des limites de 1 octet uniquement.
  • (macOS 64 bits et Linux 64 bits) Les données sont alignées naturellement sur des limites de 8 octets maximum.
  • (Windows 64 bits et VxWorks) Les données sont alignées naturellement sur des limites de 8 octets maximum.

Sur toutes les plates-formes, les clusters adoptent l'alignement de l'élément dont l'alignement est le plus restreint.

Les tables suivantes représentent un cluster qui contient un entier 16 bits, un nombre à virgule flottante double précision, un nombre à virgule flottante précision étendue, un tableau et un entier non signé 8 bits. Chaque ligne contient l'adresse mémoire et son élément correspondant, ainsi que la taille de cet élément.

  • (Phar Lap ETS) Comme les données sont alignées sur des limites de 1 octet uniquement, l'adresse mémoire du cluster suivant est 17.
    Adresse mémoireÉlémentTaille (octets)
    0:entier I162
    2:à virgule flottante EXT10
    12:handle vers tableau4
    16:entier U81
  • (Windows 64 bits, macOS 64 bits et Linux 64 bits) Comme les données sont alignées naturellement sur des limites de 8 octets maximum, LabVIEW ajoute 7 octets de remplissage après l'entier U8, de sorte que l'adresse mémoire du cluster suivant soit 32.
    Adresse mémoireÉlémentTaille (octets)
    0:entier I162
    2:à virgule flottante EXT10
    12:Remplissage4
    16:handle vers tableau8
    24:entier U81
    25:Remplissage7
  • (VxWorks) Comme les données sont alignées naturellement sur des limites de 8 octets maximum, LabVIEW ajoute 7 octets de remplissage après l'entier U8, de sorte que l'adresse mémoire du cluster suivant soit 40. Notez que VxWorks implémente les nombres à virgule flottante EXT en tant que double précision long.
    Adresse mémoireÉlémentTaille (octets)
    0:entier I162
    2:Remplissage6
    8:à virgule flottante EXT16
    24:handle vers tableau8
    32:entier U81
    33:Remplissage7

LabVIEW enregistre les clusters intégrés à d'autres clusters directement et sans adressage indirect. LabVIEW n'enregistre indirectement que les tableaux, les chaînes et les chemins.

L'illustration suivante montre deux clusters différents qui enregistrent les données de la même façon.

Waveform

LabVIEW enregistre les waveforms exactement comme les clusters.

Refnum

LabVIEW enregistre les refnums comme entiers signés 32 bits.

Variant

LabVIEW enregistre les variants comme handles vers une structure de données interne LabVIEW. Les données de type variant sont composées de 4 octets.

Concepts apparentés

Données aplaties

Descripteurs de type