- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
很长一段时间以来,我都在思考和研究C语言编译器以汇编形式的输出,以及CPU架构。我知道这对你来说可能很愚蠢,但在我看来有些东西是非常无效的。如果我错了,请不要生气,我不明白所有这些原则是有原因的。如果你告诉我为什么这样设计,我会很高兴。我真的相信我错了,我知道把 PC 放在一起的人的天才头脑知道这样做的理由。究竟是什么,你问?我马上告诉你,我以 C 为例:
1:栈局部作用域内存分配:
因此,典型的本地内存分配使用堆栈。只需将 esp 复制到 ebp,然后通过 ebp 分配所有内存。好的,如果您明确需要按默认堆栈值分配 RAM,我会理解这一点,但如果我理解正确,现代操作系统使用分页作为应用程序和物理 RAM 之间的转换层,当您想要的地址在到达实际 RAM 之前进一步转换时字节。那么为什么不直接说 0x00000000 是 int a,0x00000004 是 int b 等等呢?并通过 mov 0x00000000,#10 访问它们?因为您实际上不会访问内存块 0x00000000 和 0x00000004,但是您的操作系统将分页表设置为这些内存块。实际上,由于 ebp 和 esp 的内存分配使用间接寻址,“我的”方式会更快。
2:变量分配口是心非:
当您运行应用程序时,Loader 将其代码加载到 RAM 中。当您创建变量或字符串时,编译器会生成代码,这些代码在 main 中创建时将这些值推送到栈顶。所以有这样做的实际指令,以及内存中的实际数字。因此,RAM 中有 2 个相同值的条目。一种是指令形式,第二种是 RAM 中的实际字节形式。但为什么?为什么不只是在声明变量 count 时将在哪个内存块,而不是在使用时插入这个内存位置?
câu trả lời hay nhất
您将如何实现递归函数?你所描述的相当于到处使用全局变量。
这只是一个问题。您如何链接到预编译的目标文件并确保它不会破坏您的过程的内存?
关于c - 编程语言和方法是否效率低下? (需要汇编程序和 C 知识),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3056586/
Tôi muốn hiểu cách hoạt động của phương thức Ruby(). Tôi đã thử tìm kiếm trên Google bằng "phương pháp Ruby" nhưng đó không phải là thứ tôi cần. Tôi cũng đã xem ruby-doc.org nhưng tôi không tìm thấy phương pháp này.
Phương thức Kiểm tra thực hiện tìm kiếm biểu thức chính quy trên chuỗi đã chỉ định và trả về giá trị Boolean cho biết liệu có tìm thấy mẫu phù hợp hay không. Đối tượng tham số object.Test(string) là bắt buộc. luôn luôn là một
Phương thức Thay thế thay thế văn bản được tìm thấy trong tìm kiếm biểu thức chính quy. Đối tượng tham số object.Replace(string1, string2) là bắt buộc. Luôn là tên của đối tượng RegExp.
Phương thức Raise tạo ra một đối tượng lỗi thời gian chạy.Raise(số, nguồn, mô tả, tệp trợ giúp, bối cảnh trợ giúp) Đối tượng tham số phải là
Phương thức Thực thi thực hiện tìm kiếm biểu thức chính quy trên chuỗi đã chỉ định. Đối tượng tham số object.Execute(string) là bắt buộc. Luôn là tên của đối tượng RegExp. sợi dây
Phương thức Clear xóa tất cả các cài đặt thuộc tính của đối tượng Err. object. Đối tượng Clear phải là tên của đối tượng Err. Mô tả Sau khi xử lý lỗi, hãy sử dụng Clear để xóa rõ ràng đối tượng Err. cái này
Phương thức CopyFile sao chép một hoặc nhiều tệp từ vị trí này sang vị trí khác. object.CopyFile đối tượng tham số nguồn, đích [, ghi đè] được yêu cầu
Phương thức Sao chép sao chép tệp hoặc thư mục được chỉ định từ vị trí này sang vị trí khác. đối tượng tham số object.Copy đích [, ghi đè] là bắt buộc. Nên là Tệp hoặc F
Phương thức Close đóng tệp TextStream đang mở. Đối tượng object.Close phải là tên của đối tượng TextStream. Ví dụ sau minh họa cách sử dụng phương thức Close.
Phương thức BuildPath thêm tên vào đường dẫn hiện có. Đối tượng tham số object.BuildPath(path, name) là bắt buộc. Phải là tên của đối tượng FileSystemObject
Phương thức GetFolder trả về đối tượng Thư mục tương ứng với một thư mục trong đường dẫn đã chỉ định. Đối tượng tham số object.GetFolder(folderspec) là bắt buộc. Phải là FileSy
Phương thức GetFileName trả về tệp hoặc thư mục cuối cùng tại đường dẫn đã chỉ định (không phải một phần của đường dẫn ổ đĩa đã chỉ định). Đối tượng tham số object.GetFileName(pathspec) là bắt buộc. nên
Phương thức GetFile trả về một đối tượng File tương ứng với một tệp trong đường dẫn đã chỉ định. Đối tượng tham số object.GetFile(filespec) là bắt buộc. FileSystemObject dự kiến
Phương thức GetExtensionName trả về một chuỗi chứa tên phần mở rộng của thành phần cuối cùng của đường dẫn. Đối tượng tham số object.GetExtensionName(path) là bắt buộc. trả lời
Phương thức GetDriveName trả về một chuỗi chứa tên ổ đĩa trong đường dẫn đã chỉ định. Đối tượng tham số object.GetDriveName(path) là bắt buộc. Đối tượng hệ thống tệp dự kiến
Phương thức GetDrive trả về đối tượng Drive tương ứng với ổ đĩa trong đường dẫn đã chỉ định. object.GetDrive đối tượng tham số drivespec là bắt buộc. Hệ thống tệp dự kiếnO
Phương thức GetBaseName trả về một chuỗi chứa tên cơ sở của tệp (không có phần mở rộng) hoặc thư mục trong đặc tả đường dẫn được cung cấp. Đối tượng tham số object.GetBaseName(path) là bắt buộc
Phương thức GetAbsolutePathName trả về một đường dẫn đầy đủ và được xác định rõ ràng từ đường dẫn đã chỉ định được cung cấp. Đối tượng tham số object.GetAbsolutePathName(pathspec)
Phương thức FolderExists trả về True nếu thư mục được chỉ định tồn tại; nếu không nó sẽ trả về Sai. Cần có đối tượng tham số object.FolderExists(folderspec)
Phương thức FileExists trả về True nếu tệp được chỉ định tồn tại; nếu không nó sẽ trả về Sai. Đối tượng tham số object.FileExists(filespec) là bắt buộc. Phải là FileS
Tôi là một lập trình viên xuất sắc, rất giỏi!