


Méthode C# pour implémenter une copie rapide via un pointeur
Jan 19, 2017 pm 01:22 PML'exemple de cet article décrit comment C# implémente la copie rapide via des pointeurs. Partagez-le avec tout le monde pour votre référence. La méthode d'implémentation spécifique est la suivante :
// fastcopy.cs // 编译时使用:/unsafe using System; class Test { // unsafe 关键字允许在下列 // 方法中使用指针: static unsafe void Copy(byte[] src, int srcIndex, byte[] dst, int dstIndex, int count) { if (src == null || srcIndex < 0 || dst == null || dstIndex < 0 || count < 0) { throw new ArgumentException(); } int srcLen = src.Length; int dstLen = dst.Length; if (srcLen - srcIndex < count || dstLen - dstIndex < count) { throw new ArgumentException(); } // 以下固定语句固定 // src 对象和 dst 对象在内存中的位置,以使这两个对象 // 不会被垃圾回收移动。 fixed (byte* pSrc = src, pDst = dst) { byte* ps = pSrc; byte* pd = pDst; // 以 4 个字节的块为单位循环计数,一次复制 // 一个整数(4 个字节): for (int n = 0; n < count / 4; n++) { *((int*)pd) = *((int*)ps); pd += 4; ps += 4; } // 移动未以 4 个字节的块移动的所有字节, // 从而完成复制: for (int n = 0; n < count % 4; n++) { *pd = *ps; pd++; ps++; } } } static void Main(string[] args) { byte[] a = new byte[100]; byte[] b = new byte[100]; for (int i = 0; i < 100; ++i) a[i] = (byte)i; Copy(a, 0, b, 0, 100); Console.WriteLine("The first 10 elements are:"); for (int i = 0; i < 10; ++i) Console.Write(b[i] + " "); Console.WriteLine("\n"); } }
J'espère que cet article sera utile à la programmation C# de chacun.
Pour plus d'articles sur C# sur la façon d'obtenir une copie rapide via des pointeurs, veuillez prêter attention au site Web PHP chinois !

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment ajouter le compilateur C de niveau suivant

Quelles sont les alternatives à Null en C

Méthode de copie du code par compilateur de langage C

Quel compilateur de langue C est le meilleur?

Quelles sont les versions Web des compilateurs de langage C?

Null est-il toujours important dans la programmation moderne dans le langage C?

CLANGE COMMANDE COMMANDE C compilateur de langage C Résumé du site Web officiel

T Tutoriel d'installation du compilateur de langue C (version informatique)
