Windows API とは
その名の通り、Windows上で動作するアプリケーションにとって、Windowsの各機能にアクセスするための接点(インターフェース)です。
pythonやJavaなどOS/プロセッサに影響されない上級言語からはあまり意識されませんが、C/C++では直接扱う事が少なくないです。
AとW結局どちらがお得かという話は結論まで飛んでください。
以下、小噺です。
ばかめ、それは残像(マクロ)だ
以下はVisual Studio 2019で適当にWindows APIを使って見たものです。

GetTickCount64とCopyFileは両方ともWindows APIっぽいですが、強調の色が違いますね。つまり、同じものではないということです。
それぞれの定義を見てみましょう。
WINBASEAPI
ULONGLONG
WINAPI
GetTickCount64(
VOID
);
WINBASEAPI
BOOL
WINAPI
CopyFileA(
_In_ LPCSTR lpExistingFileName,
_In_ LPCSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
WINBASEAPI
BOOL
WINAPI
CopyFileW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
# ifdef UNICODE
# define CopyFile CopyFileW
# else
# define CopyFile CopyFileA
# endif // !UNICODE
ということで、GetTicCount64は純粋なWindows APIでしたが、CopyFileはCopyFileWまたはCopyFileAが割り当てられるマクロだったのです。
切り替わる仕組み
UNICODEが定義されているか否かでどちらがCopyFileとなるかが決まります。
Visual Studioでは文字セットの項目からUnicode文字を選択するとUNICODEが定義されます。

AとWの違い
Aはマルチバイト文字を扱い、Wはユニコード文字を扱います。
charはサイズが1byteであり、wchar_tは2byteです。
charでも表現に2byteが必要な日本語などを扱う事はできますが、鷗外や川﨑と行った環境依存文字を扱う事ができません。
よって、日本でお仕事をするなら、Wを使用する事が求められます。
結論
「いやいや、日本語環境なんて扱うことなんてないですから。私はサイズもコンパクトなAの方が賢いと思います」という方がいるかもしれません。
しかし、私個人の意見ではWを使った方が良いと考えています。
その理由はA関数の中身にあります。

上図はCopyFileAの中身です。(Windows10 20H2)
WindowsさんもWをスタンダードとしているようで、Aを呼ぶとUnicode変換を行った上で、CopyFileWに投げています。
よって、オーバーヘッドが発生してしまうため、初めからWの関数を使用する事をおススメします。